如何验证输入不是字母或字符串?

时间:2015-12-01 20:26:56

标签: python-3.x input menu

我在IDLE中编写基本程序,菜单选项从1到4。 如果用户输入任何其他内容,然后输入一个数字,则会给出一个ValueError:int()的无效文字,基数为10:' a' 如何检查输入是否不是字母,如果是,则打印出我自己的错误消息?

4 个答案:

答案 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)      打印“无效输入”  其他:      (做其余的节目)