【发布时间】:2021-04-15 08:27:01
【问题描述】:
我在让 break 在 while 循环中工作时遇到了一些麻烦。
我创建了一个函数main(),其中包含三个关于全局作用域的input(),这三个直接紧随其后。如果您在其中一个ìnput() 中输入了不正确的值,我希望程序立即结束,并尝试使用break 完成此操作,但没有成功。所以问题是为什么我不能在我的while循环中使用break?
我的全局范围内的允许值:
Scenario 1 或 2
games 应该大于零
board_size 3、5 或 7
def main():
while True:
board_size = int(input("How big playing surface (3/5/7)? "))
if board_size != 3 or board_size != 5 or board_size != 7:
break
while True:
games = int(input("How many games do you want to simulate? "))
if games <1:
break
while True:
scenario = int(input('What scenario (1/2)? '))
if scenario != 1 or scenario != 2:
break
print_stats(games, scenario, board_size)
【问题讨论】:
-
if board_size != 3 or board_size != 5 or board_size != 7:肯定会总是为真。由于电路板具有单一尺寸,因此它将无法具有这三种尺寸中的至少两种。使用if board_size not in [3,5,7]: -
“如果您输入了错误的值,我希望程序立即结束” 但这不是
break所做的。break只是结束当前循环,而不是整个程序。 -
如果您希望程序结束,请使用
exit()。如果要终止函数,请使用return;此外,“全球范围”并不意味着您认为它会做什么。作为初学者谈论编程时,通常使用简单的英语是个好主意,直到您对术语有很好的理解。 -
您应该在条件表达式中使用
and,而不是or!或者,您可以写,例如,if board_size not in [3,5,7]: break。无论如何,这只会停止相应的循环while,而不是函数。如果要停止函数的执行,请使用return而不是break。 -
谢谢@kaya3的澄清,那我之前对break的使用有误解。
标签: python