前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第四章3:while 循环

第四章3:while 循环

作者头像
double
发布2021-03-12 11:18:40
1.5K0
发布2021-03-12 11:18:40
举报
文章被收录于专栏:算法channel

《Python projects for beginners》是我所见最友好的Python入门书,前段时间我组织并与几位Python爱好者一起对此书翻译为中文,特别感谢参与翻译的这些小伙伴,你们辛苦了。我正在以推文形式连载出来,欢迎学习。

星期三:while循环

今天我们将讨论另一种循环——while循环。昨天我们看到了循环的工作原理,以及为什么要使用for循环。当你需要根据条件而不是计数循环时,通常使用while循环。今天我们将讨论基于条件的循环。

为了完成本课程,让我们继续从上一个笔记本文件“ Week_04”开始,并在下面添加一个标记为“ While 循环”的Markdown模块。

编写一个while循环

就像for循环一样,while循环以关键字“ while”开始。之后,就像我们编写一个if语句一样,写上一个相关的条件代码。让我们来看下面这个例子:

代码语言:javascript
复制
# 写下你的第一个while循环
health = 10
while health > 0:
    print(health)
    health -= 1 # 丢失这一行将会使结果一直循环下去
# health -=1 等价于 health = health -1

继续运行这一代码块。这将会循环打印出变量health的值,直到数值不再满足>0这一条件。在这种情况下,一旦变量health值不再大于零,while循环变会停止运行。在最后一行代码中,我们将变量health值每次循环运行一次就会减1,直到变量health值接近于零。如果我们对变量health值不做任何修改,那么,整个while循环就会变成无限循环(遇到这种情况是极其糟糕的)。

While vs. For

虽然,我在之前已经多次解释了我们使用每个循环类型的原因,但是,再次重申这些概念仍然是有必要的。当需要计数或迭代时,通常使用for循环。在执行基于条件的操作时,通常使用while循环。当使用while循环时,通常会用到条件判断的布尔值(True为符合条件,False为不符合条件)。每个循环都有他们的最适合的应用环境,但在实际操作中,在大多数情况都是看个人的喜好。一般的经验法则是涉及到计数用for循环,涉及到条件判断则用while循环。


注意:pass、break和continue语句对于while循环也是同样的工作原理。


无限循环

在之前的章节中,我曾提到无限循环是不好的。无限循环将使代码持续运行直到程序中断,或计算机关机或时间停止为止。知道了这些后,在我们创建项目时,请一定要避免创建无限循环的代码块。让我们来看一个无限循环的例子:

代码语言:javascript
复制
game_over = False  # 等于布尔值False
while not game_over:  # not Fasle = True
    print(game_over)

如果你要在一个代码块中运行此程序,最终结果便是,你将不得不关闭Jupyter Notebook并重新启动它(或至少重新启动内核)。这是因为game_over变量从不变没有变为True,while循环的条件一直符合并不断运行,直到game_over变量变为True。在撰写循环代码的时候,我们一定要确保有退出循环的方法,无论是通过break中断所有循环,还是通过continue中断当前条件而运行下一条件循环。

嵌套循环

一个循环内包含另一个循环的概念就是我们所说的嵌套循环。同时,循环概念仍然适用。使用嵌套循环时,只有内循环代码完成运行后,外部的循环代码才会运行。让我们来看一个例子:

代码语言:javascript
复制
# 嵌套循环是使用两个及以上的循环
for i in range(2):  # 外循环
    for j in range(3):  # 内循环
        print(i,j)

继续并运行这一代码块。一开始,这似乎有点令人困惑,因为这里有很多事情要做。让我们用表4-4详细说明输出结果。

表4-4 跟踪嵌套循环值

迭代

i值

j值

内循环值

外循环值

1

0

0

1

1

2

0

1

2

1

3

0

2

3

1

4

1

0

4

2

5

1

1

5

2

6

1

2

6

2

总的来说,从表4-4中可以看到,内部循环一共运行6次(3次在外循环为数值1时,3次是外循环数值为2时),外部循环运行2次。而i值也仅在外循环运行时才会递增,直到内循环完成后才运行外循环。内循环必须每次从0到3(不包括3)计数才能运行下一个 外循环进行迭代。

星期三练习

1.用户输入:编写一个while循环,每次循环都会要求用户输入后才可运行,直到他们键入“quit”命令才会停止。

2.双循环:在while循环中编写for循环,从0到5进行计数,当循环到等于3时,所设条件变量game_over为True并中断整个while循环。while循环只有在条件变量game_over为True时,才会停止循环,而输出结果只有0,1,2。


小提示:使用break语句,防止程序陷入无限循环。



今天是短短的一天,因为循环概念不论对于while循环还是for循环都是相同的。但请记住,while循环用于条件循环,而for循环则用于进行计数/迭代。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《Python projects for beginners》是我所见最友好的Python入门书,前段时间我组织并与几位Python爱好者一起对此书翻译为中文,特别感谢参与翻译的这些小伙伴,你们辛苦了。我正在以推文形式连载出来,欢迎学习。
  • 星期三:while循环
    • 编写一个while循环
      • While vs. For
        • 无限循环
          • 嵌套循环
            • 星期三练习
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档