Udacity函数valid_year(年) - 为什么1920被认为是不正确的?

时间:2013-06-23 22:40:26

标签: python

我在IDLE上得到了正确的输出,但提交说它不正确。提前感谢您提出任何建议/决议。

代码:

def valid_year(year):
    for i in range(1900,2021):
        if year.isdigit() and int(year)==i:
            return year

IDLE输出: http://i.imgur.com/S3FSVkq.jpg

不正确的。您的提交没有返回正确的结果 输入'1920',。您的提交通过了9个测试用例中的7个。

3 个答案:

答案 0 :(得分:1)

试试这个更简单的版本:

def valid_year(year):
    if not year.isdigit():
       return False
    return 1900 <= int(year) <= 2021

答案 1 :(得分:1)

以Burhan的答案为基础,但回归年份:

def valid_year(year):
    if not year.isdigit():
        return False
    if 1900 <= int(year) <= 2021:
        return year
    return False

答案 2 :(得分:0)

奇怪的是它通过了9次测试中的7次。让我觉得Udacity的评分员可以很快超时 - 它是否可能不喜欢在每次迭代时检查year.isdigit()?这看起来很无聊,但你可以试试:

def valid_year(year):
    if not year.isdigit():
        return "Invalid year."
    for i in range(1900, 2021):
        if i == int(year):
            return year