我试图让用户输入我的程序,但是当他们输入字符串时,我的程序失败了。它适用于更大的程序,但正在尝试纠正问题,到目前为止我已经:
data = raw_input('Enter a number: ')
number = eval(data)
if type(number) != int:
print"I am afraid",number,"is not a number"
elif type(number) == int:
if data > 0:
print "The",number,"is a good number"
else:
print "Please enter a positive integer"
当用户输入一个字符串时,它返回:
number = eval(data)
File "<string>", line 1, in <module>
NameError: name 'hel' is not defined
如有任何帮助,我们将不胜感激。
最佳答案
您正在使用 eval
,它会评估在当前上下文中作为 Python 表达式传递的字符串。你想做的只是
data = raw_input('Enter a number: ')
try:
number = int(data)
except ValueError:
print "I am afraid %s is not a number" % data
else:
if number > 0:
print "%s is a good number" % number
else:
print "Please enter a positive integer"
这将尝试将输入解析为整数,如果失败,则显示错误消息。
关于Python 检查整数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22025764/