Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用什么代替中断(PYTHON)_Python - Fatal编程技术网

使用什么代替中断(PYTHON)

使用什么代替中断(PYTHON),python,Python,在这个例子中,我想知道我可以用什么来代替中断 while (True): try: guess = *********** break except ValueError: print(***) 您可以将guess初始化为无效值并进行测试 guess = None while guess is None: try: guess = int(input('Please enter your guess for

在这个例子中,我想知道我可以用什么来代替中断

while (True):
    try:
        guess = ***********
        break
    except ValueError:
        print(***)

您可以将
guess
初始化为无效值并进行测试

guess = None
while guess is None:
    try:
        guess = int(input('Please enter your guess for the roll: '))
    except ValueError:
        print('Only enter a number please')
当没有错误时,
guess
将被设置为整数,而不是
None
,因此循环将结束


但我更喜欢您的原始代码,它更清晰。

请提供更多信息

loop = True
while (loop):
    try:
        guess = int(input('Please enter your guess for the roll: '))
        loop =False
        #break
    except ValueError:
        print('Only enter a number please')

另一种使用一些鲜为人知但有用的python控制流的方法包括使用
for/else
try/except/else
,它仍然需要
中断
,但我认为这仍然是一个不错的选择

MAX_GUESS = 3
for _ in range(MAX_GUESS):
    try:
        guess = int(input('Input guess: '))
    except ValueError:
        print("Try again!")
    else:
        print("Success!")
        break
else:
    guess = None
    print("Max guesses attempted")

只有在循环过程中未遇到中断时,才会输入绑定到for/else循环的
else
块,类似地,
try/except/else
else
只有在
try

过程中未引发异常时才会输入。为什么需要使用其他内容?返回也可以结束循环,但是只能从函数内部进行。为什么在循环的第一次迭代中,也没有任何条件的情况下,需要一个
中断
?这相当于根本没有
循环和
中断
:)@lawlie用星号替换的部分可能类似于
int(input())
,如果输入不是有效的
int
,则会引发
ValueError
,因此,循环确保再次询问用户,直到他给出有效的输入。@Thierrylahuille感谢您的澄清。实际上,我更喜欢这样,因为循环的意图更清楚,如果guess<1或guess>6:
打印(“这只是一个六面骰子”)
,您始终可以使用
添加其他非异常检查,
guess=None