我正在创建一个函数来检测Python中的输入类型,我无法使其工作

时间:2014-09-06 05:24:00

标签: python input

所以我正在制作一个素数探测器作为一个项目。我非常喜欢编程,我的朋友给我看了一个小蟒蛇。我想创建一个函数来检测用户是否输入了一个输入数字(如5,28,156,42,63)以及是否放入其他内容(如香蕉,裤子或谷物)以给他们一个自定义错误说“无效号码。请再试一次”然后循环程序直到他们输入一个数字。

请帮我完成这项工作。

def number_checker():
    user_number = int(input('Please enter a Number: '))
    check = isinstance(user_number, int)
    if check == True:
        print ('This is a number')
    if check == False:
        print ('This is not a number')

2 个答案:

答案 0 :(得分:1)

1)如果输入字符串无法转换为int,则将输入转换为int会引发异常。

user_number = int(input('Please enter a Number: '))
              ^^^

2)与user_number实例交叉验证int是没有意义的,因为它已经int了 3)你可以尝试

def number_checker():                          
    while not input("enter num: ").isdigit():  
        print("This is not a number")          
    print("This is a number")                  
number_checker()                     

答案 1 :(得分:-1)

请尝试以下操作:

def number_checker():
    msg = 'Put your number > '
    while True:
        user_input = input(msg)
        correct = user_input.isdigit()
        if correct:
            print("This is an integer")
            return  # here you can put int(user_input) 
        else:
            print("This is not an integer")
            msg = 'You typed not integer. Try again.> '

if __name__ == '__main__':
    number_checker() 

它也是一个很好的规则,根据他们的行为为你的函数命名为动词。对于这个,我会给出,例如def int_input或其他东西。