Python 2.7 为什么下面的代码没有';是否对负输入运行异常?
我想写一个简单的代码,当用户进入他的年龄,它将给出多少年的用户将是100岁。但是,如果用户输入一个负数以给出一个值错误,我已经指定了一个异常。但是,即使我输入一个负数而没有引发异常,代码也会运行。为什么呢?谢谢我正在使用python 2.7Python 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' )
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: "))