当isDigit()为false [python 2.7]时,如何打印字符串



我正在制作一个代码

我想要的第一个字符串消息是当数字大于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")

非常感谢。

您可能不需要设置保障。只需尝试列表上的参数,看看它是否有效:

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 sk for f f grogivess胜于 p p p ermission(哲学反对在跳跃之前

最新更新