我在IDLE中编写基本程序,菜单选项从1到4。 如果用户输入任何其他内容,然后输入一个数字,则会给出一个ValueError:int()的无效文字,基数为10:' a' 如何检查输入是否不是字母,如果是,则打印出我自己的错误消息?
答案 0 :(得分:0)
我有点不清楚您是否希望测试某事是否为整数或是否为字母,但我对前者的可能性作出回应。
user_response = input("Enter an integer: ")
try:
int(user_response)
is_int = True
except ValueError:
is_int = False
if is_int:
print("This is an integer! Yay!")
else:
print("Error. The value you entered is not an integer.")
我对python很新,所以很可能有更好的方法来做到这一点,但这就是我测试过去输入值是否为整数的方法。
答案 1 :(得分:0)
def isNumber (value):
try:
floatval = float(value)
if floatval in (1,2,3,4):
return True
else:
return False
except:
return False
number_choice = input('Please choose a number: 1, 2, 3 or 4.\n')
while isNumber(number_choice) == False:
number_choice = input('Please choose a number: 1, 2, 3 or 4.\n')
else:
print('You have chosen ' + number_choice + '.\n')
这将检查号码是1,2,3或4,如果不是,将要求用户再次输入号码,直到它符合标准。
答案 2 :(得分:0)
isalpha()
-这是一个字符串方法,用于检查输入的字符串是字母还是单词(仅字母,无空格或数字)
while True:
user_response = input("Enter an integer : ")
if user_response.isalpha():
print("Error! The value entered is not an integer")
continue
else:
print("This is an integer! Yay!")
break
该程序具有无限循环,即,直到您输入整数,该程序才会停止。我为此使用了break and continue关键字。
答案 3 :(得分:-1)
如果您只想查看输入是1还是2或3还是4,那么您可以非常简单地进行
如果输入!= 1或!= 2或!= 3或!= 4 :(如果不是1或2或3或4) 打印“无效输入” 其他: (做其余的节目)