0
# Finicky Counter
# Demonstrates the break and continue statements

count = 0
while True:
  count += 1
  # end loop if count greater than 10
  if count > 10:
   break
  # skip 5
  if count == 5:
    continue
  print(count)

input("\n\nPress the enter key to exit.")

为什么 while True 循环适用于这种情况下的计数?我不明白为什么布尔值会衡量计数的结果。正确的语法不是:

while count:

任何澄清这一点的帮助将不胜感激。

4

3 回答 3

0

count是 0,所以while count甚至永远不会进入循环,因为 0 在布尔上下文中是 False。

Python 没有类似于repeat ... until (condition)在其他一些语言中发现的结构。因此,如果您希望循环始终开始,但仅在条件为真时结束,通常的方法是将条件设置为 just True- 显然,始终为真 - 然后在循环内显式测试条件, 并使用break.

要回答您的评论,这里的真实情况就是 value True,正如我所说的那样,情况总是如此。

于 2013-09-19T20:35:59.720 回答
0

如果您在调试器中逐步遵循代码(一个允许这样做的简单 ide 是 PyScripter),它会有所帮助。

简单说几句:

  • while True是一个无限循环。它只能由breakorreturn语句留下。
  • 因此循环将一直运行,直到满足条件count > 10。break 将终止循环并执行下一个命令 ( input ...)。
  • if count == 5,continue告诉 python立即跳转到循环的开头而不执行以下语句(因此不打印“5”)。

但是:按照调试器中的代码进行操作!

于 2013-09-19T20:36:59.660 回答
0

while 循环的语法是“while条件”。while 循环下方的块一直执行,直到任一条件评估为 False 或执行中断命令。“while True”表示条件始终为 True,除非执行中断,否则循环不会停止。这是一个常用的 python 习惯用法,因为 python 没有do while 循环。

于 2013-09-19T20:37:11.873 回答