不希望用户输入数字时Input()函数出现问题

时间:2019-02-07 11:15:15

标签: python python-3.x

我写了一个脚本,我想知道如何防止用户输入数字时我显示一条消息“数字不正确!只是字符串')。 谢谢。

data

2 个答案:

答案 0 :(得分:0)

您有一个字符串。如果要检查是否为数字,可以使用以下代码:

a.replace('.','',1).isdigit()

因此您可以创建一个新的Elif,如下所示:

elif a.replace('.','',1).isdigit():
    print("number is not OK! just string")

答案 1 :(得分:0)

这里的问题是input总是返回一个字符串。 isdigit会为您处理此问题,但它会因浮点数而失败(这是“替换解决方案”的原因)。 另一种方法可能是:

#!/usr/bin/env python

def is_a_number(s):
    '''try to convert a string to int and float'''
    try:
        int(s)
        return True
    except:
        pass

    try:
        float(s)
        return True
    except:
        pass

    return False


def main():
    a=input('Please enter your Name : ')

    if a=='foo':
        print ('i found you finally')
    elif is_a_number(a):
        print('number is not OK! just string')
    elif a=='':
        print ('Null name is not ok!')
    else:
        print ('No you are not that person')


if __name__ == '__main__':
    main()