Python Can';不要在while循环中使用break
我在使Python Can';不要在while循环中使用break,python,Python,我在使break在一个while循环中工作时遇到一些问题 我创建了一个函数main()。如果您在其中一个ìnput()中输入了不正确的值,并试图通过中断来完成,我希望程序立即结束。所以问题是为什么我不能在while循环中使用break 我的全局作用域中允许的值: 场景1或2 游戏应大于零 board_size3、5或7 def main(): while True: board_size = int(input("How big playing
break
在一个while循环中工作时遇到一些问题
我创建了一个函数main()。如果您在其中一个ìnput()
中输入了不正确的值,并试图通过中断
来完成,我希望程序立即结束。所以问题是为什么我不能在while循环中使用break
我的全局作用域中允许的值:
场景
1或2
游戏
应大于零
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)
def main():
尽管如此:
board_size=int(输入(“游戏场地(3/5/7)有多大?”)
如果电路板大小!=3或电路板尺寸!=5或电路板尺寸!=7:
打破
尽管如此:
games=int(输入(“您要模拟多少个游戏?”)
如果游戏您的代码将始终中断,因为棋盘大小永远不可能等于3、5或7
:
此外,程序不会在中断循环时“结束”,而为True
循环时,有许多方法可以做到这一点,包括sys.exit()
,raise SystemExit()
,exit()
。。。
我想你想要:
def main():
while True:
board_size = int(input("How big playing surface (3/5/7)? "))
if board_size not in [3, 5, 7]:
raise SystemExit()
while True:
games = int(input("How many games do you want to simulate? "))
if games <1:
raise SystemExit()
while True:
scenario = int(input('What scenario (1/2)? '))
if scenario not in [1, 2]:
raise SystemExit()
print_stats(games, scenario, board_size)
def main():
尽管如此:
board_size=int(输入(“游戏场地(3/5/7)有多大?”)
如果电路板尺寸不在[3,5,7]中:
提升系统退出()
尽管如此:
games=int(输入(“您要模拟多少个游戏?”)
如果游戏您可以使用not
逻辑检查棋盘大小是否等于3、5或7。您可以使用sys.exit()
退出程序,但请确保导入sys
import sys
def main():
while True:
board_size = int(input("How big playing surface (3/5/7)? "))
if not (board_size == 3 or board_size == 5 or board_size == 7):
sys.exit()
else:
break
while True:
games = int(input("How many games do you want to simulate? "))
if games <1:
sys.exit()
else:
break
while True:
scenario = int(input('What scenario (1/2)? '))
if not (scenario == 1 or scenario == 2):
sys.exit()
else:
break
print(games, scenario, board_size)
main()
导入系统
def main():
尽管如此:
board_size=int(输入(“游戏场地(3/5/7)有多大?”)
如果不是(board_size==3或board_size==5或board_size==7):
sys.exit()
其他:
打破
尽管如此:
games=int(输入(“您要模拟多少个游戏?”)
如果游戏肯定如果棋盘大小!=3或电路板尺寸!=5或电路板尺寸!=7:
将始终为真。由于电路板只有一种尺寸,因此在这三种尺寸中,至少有两种尺寸的电路板将失效。如果board_大小不在[3,5,7]中,请使用:
“如果输入的值不正确,我希望程序立即结束”,但这不是break
所做的break
只结束当前循环,而不是整个程序。如果希望程序结束,请使用exit()
。如果要终止函数,请使用return
;此外,“全球范围”并不意味着你认为它能做什么。一般来说,当作为初学者谈论编程时,最好使用通俗易懂的英语,直到你对术语有了很好的理解。你应该在条件表达式中使用和,而不是或!或者,您可以编写,例如,如果线路板大小不在[3,5,7]:break
。无论如何,这将只停止相应的循环,而不停止函数。如果您想停止函数的执行,请使用return
而不是break
。感谢@kaya3的澄清,那么我之前误解了break的用法。谢谢!不幸的是,exit()?我将阅读更多关于退出()的信息。谢谢!因此,我在查找内容之后输入了if board\u size!=3或电路板尺寸!=5或电路板尺寸!=7:
等?