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:
等?