我尝试使用try()函数,但是当我尝试:然后键入print()时,它只是不停地打印消息。如何使它只打印一次?
def inputInt(minv, maxv, message):
res = int(input(message))
while (res > minv) and (res < maxv):
try:
print("Good job.")
except:
print("Invalid input")
答案 0 :(得分:1)
您是否尝试过height : 2
lenght : 2
x :1
y :1
1
1
[['0', '0'], ['0', 'f']]
?
看看this和this可以得到更多的说明,但是如果您希望一次尝试跳转到除外,它应该只打印一次,{{1} }就是这个东西。
我必须说,如果您不更改break
,此循环将永远持续下去。即使它出现在break
或res
中。
答案 1 :(得分:1)
可能引发异常的代码应该在try
中。输入应在while
内部。如果发生意外异常,请捕获预期的异常。裸露的except
是不好的做法,并且可以隐藏错误。
这是建议的实现方式:
def inputInt(minv, maxv, message):
while True: # Loop until break
try:
res = int(input(message)) # Could raise ValueError if input is not an integer.
if minv <= res <= maxv: # if res is valid,
break # exit while loop
except ValueError: # Ignore ValueError exceptions
pass
print("Invalid input") # if didn't break, input or res was invalid.
return res # Once while exits, res is good
x = inputInt(5,10,"enter number between 5 and 10: ")