Python 2.7 为什么下面的代码没有';是否对负输入运行异常?

Python 2.7 为什么下面的代码没有';是否对负输入运行异常?,python-2.7,Python 2.7,我想写一个简单的代码,当用户进入他的年龄,它将给出多少年的用户将是100岁。但是,如果用户输入一个负数以给出一个值错误,我已经指定了一个异常。但是,即使我输入一个负数而没有引发异常,代码也会运行。为什么呢?谢谢我正在使用python 2.7 try: age = raw_input("Please enter your age: ") if age < 0: raise ValueError ('%d is not a positive number' )

我想写一个简单的代码,当用户进入他的年龄,它将给出多少年的用户将是100岁。但是,如果用户输入一个负数以给出一个值错误,我已经指定了一个异常。但是,即使我输入一个负数而没有引发异常,代码也会运行。为什么呢?谢谢我正在使用python 2.7

try:
    age = raw_input("Please enter your age: ")
    if age < 0:
        raise ValueError  ('%d is not a positive number' )

except ValueError as err:
    print ("You've entered an incorrect age input %s" %err)

else:
    print("You will be 100 in %d" % (100 - int(age)))   
试试看:
年龄=原始输入(“请输入您的年龄:”)
如果年龄<0:
raise VALUERROR(“%d”不是正数)
除ValueError作为错误外:
打印(“您输入了不正确的年龄输入%s”%err)
其他:
打印(“您将在%d中100岁”%(100-int(年龄)))

raw\u input
返回一个字符串,因此
age
是一个字符串,包含您输入的内容-
“-3”
。不是整数

将整数与字符串进行比较时,
“-3”<0
,整数总是“先到”(小于字符串),这是实现细节,因此您的
if
将始终为False。转换为
int
ValueError
将捕获无效转换:

age = int(raw_input("Please enter your age: "))