【问题标题】:Test if input is a string instead of a number? [duplicate]测试输入是否是字符串而不是数字? [复制]
【发布时间】:2014-10-11 21:42:10
【问题描述】:

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

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')

【问题讨论】:

标签: python input


【解决方案1】:

听起来你在找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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2013-08-05
    • 2011-09-11
    相关资源
    最近更新 更多