Python-使用无限或有限循环过滤数字
Python-filter numbers by using infinite or finite loops
这是我尝试 "repeatedly reads numbers until the user enters " 完成的一些代码,但我不明白为什么我需要 "While true" 语句使循环无限,以便 运行 "if" 语句。如果我不放 "While true" 语句和 运行 代码,计算机会说“'break' is out of loop”,这让我很困惑。我也想要想知道在什么情况下我们应该在循环中使用"while true"?请帮助。谢谢!
count=0
total=0
while True:
value=input("Enter a value:")
if value =="done":
break
try:
num=float(value)
except:
print("Bad input")
continue
count=count+1
total=total+num
print(total,count,total/count)
while condition
重复里面的代码,而condition
是True
。
在 while True
中,给定的条件是 True
本身,因此它一直重复下去,直到中断 (break
).
break
表示“从最外面的循环中退出”,所以如果你在循环外使用 break
,它会给你一个错误。
+) 这只是一个提示,但您可以像 count = count + 1
一样使用 count += 1
! total = total + num
也是如此,比如 total += num
break
语句的目的是停止循环的执行。因此 Python 编程语言要求任何 break
语句都在循环内。因此,如果您省略了 while True
语句,则您的 break
不在循环中并且 Python 正确地声明了一个错误。
使用 while True
循环的原因有很多。一个原因是继续做你的事情,直到一些不寻常的情况发生。您的程序可以检查该情况并在需要时停止。该检查在循环开始时可能很难进行,因此将 while True
与一个或多个 break
语句一起使用允许在循环中的任何一点进行检查。
while True
循环的另一个原因是避免重复语句——Don't Repeat Yourself (DRY) 原则的应用。您的程序可以以不同的方式完成。你可以这样做:
value = input("Enter a value:")
while value != "done":
# the body of the loop starting with the "try" statement
value = input("Enter a value:")
这种格式将检查放在循环的开始,因此不需要 True
或 break
。这样做的缺点是您现在有两条 input
行完全相同并且需要保持相同。如果您稍后更改代码,您可能很容易更改其中一个 input
而忘记更改另一个,从而在您的代码中引入错误。因此,重复自己被认为是一件坏事。当前的 Python 编程倾向于避免重复并使用 while True
和 break
来避免重复。
出现这个困难是因为程序需要比执行循环多执行一次input
语句。循环针对每个常规输入完成,但 input
语句还需要再执行一次以获得最终的 done
输入以停止循环。处理输入数量和循环数量之间的轻微不匹配有点棘手,并且没有完美的解决方案。但是 Python 显然已经选择了 while True...break
方法。值得一提的是,我 40 年前的编程 类 教我们避免 break
技术,因为 goes against "structured programming" principles。但那些日子似乎已经一去不复返了。
这是我尝试 "repeatedly reads numbers until the user enters " 完成的一些代码,但我不明白为什么我需要 "While true" 语句使循环无限,以便 运行 "if" 语句。如果我不放 "While true" 语句和 运行 代码,计算机会说“'break' is out of loop”,这让我很困惑。我也想要想知道在什么情况下我们应该在循环中使用"while true"?请帮助。谢谢!
count=0
total=0
while True:
value=input("Enter a value:")
if value =="done":
break
try:
num=float(value)
except:
print("Bad input")
continue
count=count+1
total=total+num
print(total,count,total/count)
while condition
重复里面的代码,而condition
是True
。
在 while True
中,给定的条件是 True
本身,因此它一直重复下去,直到中断 (break
).
break
表示“从最外面的循环中退出”,所以如果你在循环外使用 break
,它会给你一个错误。
+) 这只是一个提示,但您可以像 count = count + 1
一样使用 count += 1
! total = total + num
也是如此,比如 total += num
break
语句的目的是停止循环的执行。因此 Python 编程语言要求任何 break
语句都在循环内。因此,如果您省略了 while True
语句,则您的 break
不在循环中并且 Python 正确地声明了一个错误。
使用 while True
循环的原因有很多。一个原因是继续做你的事情,直到一些不寻常的情况发生。您的程序可以检查该情况并在需要时停止。该检查在循环开始时可能很难进行,因此将 while True
与一个或多个 break
语句一起使用允许在循环中的任何一点进行检查。
while True
循环的另一个原因是避免重复语句——Don't Repeat Yourself (DRY) 原则的应用。您的程序可以以不同的方式完成。你可以这样做:
value = input("Enter a value:")
while value != "done":
# the body of the loop starting with the "try" statement
value = input("Enter a value:")
这种格式将检查放在循环的开始,因此不需要 True
或 break
。这样做的缺点是您现在有两条 input
行完全相同并且需要保持相同。如果您稍后更改代码,您可能很容易更改其中一个 input
而忘记更改另一个,从而在您的代码中引入错误。因此,重复自己被认为是一件坏事。当前的 Python 编程倾向于避免重复并使用 while True
和 break
来避免重复。
出现这个困难是因为程序需要比执行循环多执行一次input
语句。循环针对每个常规输入完成,但 input
语句还需要再执行一次以获得最终的 done
输入以停止循环。处理输入数量和循环数量之间的轻微不匹配有点棘手,并且没有完美的解决方案。但是 Python 显然已经选择了 while True...break
方法。值得一提的是,我 40 年前的编程 类 教我们避免 break
技术,因为 goes against "structured programming" principles。但那些日子似乎已经一去不复返了。