当isdigit()为False时如何打印出字符串[Python 2.7]

时间:2017-04-27 22:52:27

标签: python

我正在创建一个代码,除了整数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")

非常感谢。

1 个答案:

答案 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 错误)哲学反对在你跳跃之前寻找