假设我希望用户输入1到50之间的数字,所以我这样做:
num = input("Choose a number between 1 and 50: ")
但是,如果用户输入的数字不在1到50之间,我希望它打印出来:
选择1到50之间的数字:无效数字
我该怎么做?
答案 0 :(得分:1)
num = input("Choose a number between 1 and 50: ")
try:
num = int(num) #Check if user input can be translated to integer. Otherwise this line will raise ValueError
if not 1 <= num <= 50:
print('Choose a number between 1 and 50: invalid number')
except ValueError:
print('Choose a number between 1 and 50: invalid number')
答案 1 :(得分:1)
您需要将输入设置为整数,因为否则它将是字符串:
num = int(input("Choose a number between 1 and 50: "))
检查已设置的数字:
if 1 < num < 50:
print(1)
else:
print("invalid number")
答案 2 :(得分:0)
除了以上答案外,您还可以使用断言。您可能会更多地使用这些,以便在调试和测试时使用。如果失败,它将抛出一个AssertionError
。
num = input('Choose a number between 1 and 50') # try entering something that isn't an int
assert type(num) == int
assert num >= 1
assert num <= 50
print(num)
您可以使用if
语句,但是您需要先将输入分配给变量,然后然后在条件中包含该变量。否则,您将无任何评估。
num = input('Choose a number between 1 and 50')
if type(num) == int: # if the input isn't an int, it won't print
if num >= 1 and num <= 50:
print(num)
默认情况下,提供的输入将是字符串。您可以在输入上调用内置函数int()
并将其强制转换为类型int
。如果用户输入的内容不是ValueError
,它将抛出int
。
num = int(input('Choose a number between 1 and 50'))
您还可以实现错误处理(如Moonsik Park和Ethan Thomas的答案所示)。
答案 3 :(得分:0)
这就是我可能要做的事情:
validResponse = False
while(not validResponse):
try:
num = int(input("Choose a number between 1 and 50: "))
if(1 <= num <= 50):
validResponse = True
else:
print("Invalid number.")
except ValueError:
print("Invalid number.")
这是如果您要提示他们直到输入正确的数字。否则,您可以放弃while循环和validResponse变量。
尝试将运行该语句,直到遇到错误为止。如果错误特别是该数字不能被整数化,则将引发ValueError异常,except语句将告诉程序在这种情况下该怎么做。在这种情况下,任何其他形式的错误仍然可以根据需要结束程序,因为这里可接受的错误的唯一类型是ValueError。但是,在try语句之后可以有多个except语句来处理不同的错误。