测试输入是字符串而不是数字?

时间:2014-10-11 21:42:10

标签: python input

对不起,我是初学者。但就像我有:

x = eval(input('Enter a value for x: '))

如何制作,以便如果此人输入字符串而不是数字,则会打印"Enter a number"而不是出错。某些类型的if语句在哪里:

if x == str():
    print('Please enter a number')

else:
    print('blah blah blah')

1 个答案:

答案 0 :(得分:0)

听起来你正在寻找str.isdigit

>>> x = input(':')
:abcd
>>> x.isdigit()  # Returns False because x contains non-digit characters
False
>>> x= input(':')
:123
>>> x.isdigit()  # Returns True because x contains only digits
True
>>>

在您的代码中,它将是:

if not x.isdigit():
    print('Please enter a number')  
else:
    print('blah blah blah')

在旁注中,您应该避免使用eval(input(...)),因为它可以用于执行任意表达式。换句话说,它通常是一个安全漏洞,因此被大多数Python程序员认为是一种不好的做法。参考:

Is using eval in Python a bad practice?