【发布时间】:2012-07-20 03:58:38
【问题描述】:
我正在尝试异常处理/错误捕获,想知道为什么下面的代码不起作用。我正在使用python 2.7。我了解input() 和raw_input() 之间的区别,并且了解raw_input() 在Python 3.0 中已重命名为input()。如果我输入一个整数,那么代码会一直循环,直到我输入一个字符串。输入字符串时,我收到以下错误消息。有没有办法解决这个问题,或者这只是那些 python 怪癖之一?
File "<some_directory_path_goes_here>", line 30, in <module>
enterAge = input('Enter your age as an integer: ')
File "<string>", line 1, in <module>
NameError: name '<user_entered_string_goes_here>' is not defined
在 python 2.7 中,在我看来代码应该仍然可以工作。
from types import IntType
age = 0
while True:
enterAge = input('Enter your age as an integer: ')
try:
if type(enterAge) is IntType:
num = enterAge
age = age + num
print str(age) + ' is old!'
except TypeError:
print 'You did\'t enter an integer'
break
【问题讨论】:
标签: types input error-handling python-2.7 try-except