习题 33: While 循环?

接下来是一个更在你意料之外的概念: while-loop``(while 循环)。``while-loop 会一直执行它下面的代码片段,直到它对应的布尔表达式为 False 时才会停下来。

等等,你还能跟得上这些术语吧?如果你的某一行是以 : (冒号, colon)结尾,那就意味着接下来的内容是一个新的代码片段,新的代码片段是需要被缩进的。只有将代码用这样的方式格式化,Python 才能知道你的目的。如果你不太明白这一点,就回去看看“if 语句”和“函数”的章节,直到你明白为止。

接下来的练习将训练你的大脑去阅读这些结构化的代码。这和我们将布尔表达式烧录到你的大脑中的过程有点类似。

回到 while 循环,它所作的和 if 语句类似,也是去检查一个布尔表达式的真假,不一样的是它下面的代码片段不是只被执行一次,而是执行完后再调回到 while 所在的位置,如此重复进行,直到 while 表达式为 False 为止。

While 循环有一个问题,那就是有时它会永不结束。如果你的目的是循环到宇宙毁灭为止,那这样也挺好的,不过其他的情况下你的循环总需要有一个结束点。

为了避免这样的问题,你需要遵循下面的规定:

  1. 尽量少用 while-loop,大部分时候 for-loop 是更好的选择。
  2. 重复检查你的 while 语句,确定你测试的布尔表达式最终会变成 False
  3. 如果不确定,就在 while-loop 的结尾打印出你要测试的值。看看它的变化。

在这节练习中,你将通过上面的三样事情学会 while-loop

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
i = 0
numbers = []

while i < 6:
    print "At the top i is %d" % i
    numbers.append(i)

    i = i + 1
    print "Numbers now: ", numbers
    print "At the bottom i is %d" % i


print "The numbers: "

for num in numbers:
    print num

你应该看到的结果?

$ python ex33.py
At the top i is 0
Numbers now:  [0]
At the bottom i is 1
At the top i is 1
Numbers now:  [0, 1]
At the bottom i is 2
At the top i is 2
Numbers now:  [0, 1, 2]
At the bottom i is 3
At the top i is 3
Numbers now:  [0, 1, 2, 3]
At the bottom i is 4
At the top i is 4
Numbers now:  [0, 1, 2, 3, 4]
At the bottom i is 5
At the top i is 5
Numbers now:  [0, 1, 2, 3, 4, 5]
At the bottom i is 6
The numbers: 
0
1
2
3
4
5

加分习题?

  1. 将这个 while 循环改成一个函数,时时彩计划软件公式:将测试条件(i < 6)中的 6 换成一个变量。
  2. 使用这个函数重写你的脚本,并用不同的数字进行测试。
  3. 为函数添加另外一个参数,这个参数用来定义第 8 行的加值 + 1 ,这样你就可以让它任意加值了。
  4. 再使用该函数重写一遍这个脚本。看看效果如何。
  5. 接下来使用 for-looprange 把这个脚本再写一遍。你还需要中间的加值操作吗?如果你不去掉它,会有什么样的结果?

很有可能你会碰到程序跑着停不下来了,这时你只要按着 CTRL 再敲 c (CTRL-c),这样程序就会中断下来了。

Project Versions

Table Of Contents

Previous topic

习题 32: 循环和列表

Next topic

习题 34: 访问列表的元素

This Page

凤凰时时彩平台登录 时时彩买龙虎 时时彩杀号定胆软件 四川省时时彩玩法 助赢重庆时时彩苹果版
内蒙古体育彩票时时彩 博悦分分彩 内蒙快时时彩开奖结果 时时彩后二怎么买赚钱 亮点时时彩计划
一号庄时时彩 时时彩返奖统计软件 博众时时彩软件下载 博彩平台开发 时时彩源码出售
时时彩豹子出来的前兆 唐会时时彩平台诈骗 时时彩gt平台地址 鸿运时时彩投注平台 重庆时时彩软件助手
江西时时彩技巧 甘肃快三开奖结杲 北京时时彩开奖记录结果查询 贵州11选5一定牛遗漏 双色球复式投注表
福建11选5遗漏 谁有靠谱的时时彩平台 极速飞艇2 吉林十一选五开结果 百发彩票
云南时时彩开奖时间 辽宁快乐12手机版 天津时时彩论坛 江苏快3上宏发玩 湖北30选5中奖详情
湖南体彩幸运赛车 广东快乐十分官方下载 北京赛车pk10开户是多少 山东十一选五开奖结果 北京赛车pk10开奖直播