使用什么代替中断(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
。