我正在尝试异常处理/错误捕获,想知道为什么下面的代码不起作用。我正在使用python 2.7。我了解 和 之间的区别input()
并raw_input()
了解在 Python 3.0raw_input()
中已重命名为。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