while-loop - 而真:尝试:除了ValueError:
问题描述
我想做一个这样的功能:
while True:
try:
x = int(input("Please enter a number 1 - 5: "))
print (x)
except ValueError:
print "Oops! That was not a valid number. Try again..."
但是我怎样才能确保只有在 x 介于 0 - 6 之间时才会打印“x”。
解决方案
如果要保持异常流,可以在用户输入无效值时引发异常。
while True:
try:
x = int(input("Please enter a number 1 - 5: "))
if x < 1 or x > 5:
raise ValueError('Input not valid') # go to except block
print (x)
except ValueError:
print ("Oops! That was not a valid number. Try again...")
您还可以编写一个循环而不引发异常:
while True:
x = int(input("Please enter a number 1 - 5: "))
if x < 1 or x > 5:
print ("Oops! That was not a valid number. Try again...")
continue # skip print
print (x)