笨办法学Python(三十三)
习题 33: While 循环
接下来是一个更在你意料之外的概念: while-loop``(while 循环)。``while-loop 会一直执行它下面的代码片段,直到它对应的布尔表达式为 False 时才会停下来。
等等,你还能跟得上这些术语吧?如果你的某一行是以 : (冒号, colon)结尾,那就意味着接下来的内容是一个新的代码片段,新的代码片段是需要被缩进的。只有将代码用这样的方式格式化,Python 才能知道你的目的。如果你不太明白这一点,就回去看看“if 语句”和“函数”的章节,直到你明白为止。
接下来的练习将训练你的大脑去阅读这些结构化的代码。这和我们将布尔表达式烧录到你的大脑中的过程有点类似。
回到 while 循环,它所作的和 if 语句类似,也是去检查一个布尔表达式的真假,不一样的是它下面的代码片段不是只被执行一次,而是执行完后再调回到 while 所在的位置,如此重复进行,直到 while 表达式为 False 为止。
While 循环有一个问题,那就是有时它会永不结束。如果你的目的是循环到宇宙毁灭为止,那这样也挺好的,不过其他的情况下你的循环总需要有一个结束点。
为了避免这样的问题,你需要遵循下面的规定:
- 尽量少用 while-loop,大部分时候 for-loop 是更好的选择。
- 重复检查你的 while 语句,确定你测试的布尔表达式最终会变成 False 。
- 如果不确定,就在 while-loop 的结尾打印出你要测试的值。看看它的变化。
在这节练习中,你将通过上面的三样事情学会 while-loop :
i = 0
numbers = [] while i < 6:
print "At the top i is %d" % i
numbers.append(i) i = i + 1
print "Number now: ",numbers
print "At the bottom i is %d" % i print "The numbers: " for num in numbers:
print num
你应该看到的结果
加分习题
- 将这个 while 循环改成一个函数,将测试条件(i < 6)中的 6 换成一个变量。
- 使用这个函数重写你的脚本,并用不同的数字进行测试。
- 为函数添加另外一个参数,这个参数用来定义第 8 行的加值 + 1 ,这样你就可以让它任意加值了。
- 再使用该函数重写一遍这个脚本。看看效果如何。
- 接下来使用 for-loop 和 range 把这个脚本再写一遍。你还需要中间的加值操作吗?如果你不去掉它,会有什么样的结果?
很有可能你会碰到程序跑着停不下来了,这时你只要按着 CTRL 再敲 c (CTRL-c),这样程序就会中断下来了。
习题练习
1.
def while_loop(n, n_add):
i = 0
numbers = [] while i < n:
print "At the top i is %d" % i
numbers.append(i) i = i + n_add
print "Number now: ",numbers
print "At the bottom i is %d" % i
return numbers while_loop(6, 1)
print "The numbers: " numbers = while_loop(6, 1)
for num in numbers:
print num
2.
def while_loop(n, n_add):
i = 0
numbers = [] for i in range(0,n + 1,n_add):
print "At the top i is %d" % i
numbers.append(i) print "Number now: ",numbers
print "At the bottom i is %d" % i
return numbers print while_loop(4, 2)
print "The numbers: " numbers = while_loop(4, 2)
for num in numbers:
print num
笨办法学Python(三十三)的更多相关文章
- 笨办法学Python(十三)
习题 13: 参数.解包.变量 在这节练习中,我们将讲到另外一种将变量传递给脚本的方法(所谓脚本,就是你写的 .py 程序).你已经知道,如果要运行 ex13.py,只要在命令行运行 python e ...
- 笨办法学 Python (第三版)(转载)
笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html 摘自https://learn-python ...
- 笨办法学Python - 习题1: A Good First Program
在windows上安装完Python环境后,开始按照<笨办法学Python>书上介绍的章节进行练习. 习题 1: 第一个程序 第一天主要是介绍了Python中输出函数print的使用方法, ...
- 《笨办法学 Python(第四版)》高清PDF|百度网盘免费下载|Python编程
<笨办法学 Python(第四版)>高清PDF|百度网盘免费下载|Python编程 提取码:jcl8 笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机 ...
- 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码
笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...
- 笨办法学 Python (Learn Python The Hard Way)
最近在看:笨办法学 Python (Learn Python The Hard Way) Contents: 译者前言 前言:笨办法更简单 习题 0: 准备工作 习题 1: 第一个程序 习题 2: 注 ...
- 笨办法学python 13题:pycharm 运行
笨办法学python 13题 代码: # -*- coding: utf-8 -*- from sys import argv # argv--argument variable 参数变量 scrip ...
- 笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘
笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:xaln 怎样阅读本书 由于本书结构独特,你必须在学习时遵守几条规则 录入所有代码,禁止复制粘贴 一字不差地录入代码 ...
- 笨办法学Python 3|百度网盘免费下载|新手基础入门书籍
点击下方即可百度网盘免费提取 百度网盘免费下载:笨办法学Python 3 提取码:to27 内容简介: 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用. ...
- 《笨办法学Python 3》python入门书籍推荐|附下载方式
<笨办法学Python 3>python入门书籍免费下载 内容简介 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用.这本书以习题的方式引导读 ...
随机推荐
- 学习C/C++需要掌握哪些知识
初级阶段 1.C语言 数据类型.变量.内存布局.指针基础: 字符串.一维数组.二维数组: 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针: 结构体.文件的使用: 动态库的封装和设计: ...
- Github如何快速添加add文件到暂存区之git add
git add作用是将代码从工作区提交到暂存区 通常会想到:git add [file1] [file2] : 这个方法添加文件比较慢,如果文件比较多怎么办? git add *.扩展名 这条命令 ...
- asp:FileUpload 控件上传多文件
<asp:FileUpload runat="server" ID="imgUpload" AllowMultiple="true" ...
- 07-图5 Saving James Bond - Hard Version (30 分)
This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...
- Android RecyView 滑动置指定位置
1,直接回到顶部 recyview.getLinearLayoutManager().scrollToPositionWithOffset(0, 0); 2,慢慢的回到顶部 private void ...
- css animation fade in
<html> <style> @-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}} @-o-keyframes fad ...
- python解决excel工作薄合并处理
年度了,要对每个月的数据进行总的汇总,去计算每消耗品的使用情况,表格都在一个工作表的不同sheet中,并且格式相同,所以就用python写了这个小脚本,现在把脚本粘贴出来,以后有需要就可以在此基础上改 ...
- linux进程间的通信之 共享内存
一.共享内存介绍 共享内存是三个IPC(Inter-Process Communication)机制中的一个. 它允许两个不相关的进程访问同一个逻辑内存. 共享内存是在两个正在进行的进程之间传递数据的 ...
- 2019.03.21 读书笔记 readonly与const
区别: const是编译时常量(指反编译时看到的源码是常量本身,而不是变量),自带static,只能修饰基元类型.枚举.字符串,readonly是运行时常量(全局变量或者构造赋值),不受类型限制,但在 ...
- qt安装
在以下网页选择一个国内的下载地址即可 http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7. ...