【发布时间】:2021-11-04 16:39:51
【问题描述】:
try:
day = int(input())
month = int(input())
if month == 0:
raise ZeroDivisionError
elif day > 31 or month > 12:
raise ValueError
elif type(day) != int() or type(month) != int():
raise TypeError
except ZeroDivisionError:
print(month, "is not a valid month")
except ValueError:
if month > 12:
print(month, 'is not a valid month')
elif day > 31:
print(day, 'is not a valid day of any month')
except TypeError:
print("Please do not enter any string as input")
else:
if day < 10:
distance = 5 + (day * 2) / month
else:
distance = 3 + (day / month)
print(distance, "Kilometres")
当我运行它并输入一个无效的数据类型变量时,它不会引发TypeError,而是显示ValueError。
在我的 except 部分开始的代码中,PyCharm 显示我的变量 'month' 和 'day' 未定义。
我该怎么办?
【问题讨论】:
-
如果您输入
a作为day会发生什么? -
那是因为
int("some string which isn't all digits")将raiseValueError,而不是TypeError。
标签: python exception typeerror valueerror