我正在创建一个代码,除了整数1-12之外,它将返回一条错误消息(字符串)。
我要返回的第一个字符串消息是当数字大于12时(我已经解决了)。 “不存在”。
我要返回的第二个字符串消息是输入字符串而不是数字。 “无法识别的号码”。
我需要帮助这样做,我不确定如何。
以下是我目前的代码。
days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31]
def how_many_days(month_number):
if month_number > 12:
return "Doesn't exist"
if how_many_days.isdigit(month_number) == False:
return "Unrecognized number"
return days_in_month[month_number - 1]
print how_many_days(13)
print how_many_days(5)
print how_many_days(12)
print how_many_days(13)
print how_many_days("January")
非常感谢。
答案 0 :(得分:0)
您可能不需要设置安全措施。只需在列表中尝试参数,看看它是否有效:
def how_many_days(month_number):
try:
return days_in_month[month_number - 1]
except TypeError:
print "Unrecognized number"
raise
except IndexError:
print "Doesn't exist"
raise
这遵循EAFP( E asier A sk F orgiveness而不是 P 错误)哲学反对在你跳跃之前寻找。