这是 udacity.com 网络开发课程,他们要求编写一个有效年份的程序,1900 年到 2020 年之间的任何年份都是有效年份...现在,当我提交以下代码时,它给出了此错误:
“不正确。您的提交未返回输入“1920”的正确结果。您的提交通过了 9 个测试用例中的 7 个。”
我的功能:
def valid_year(year):
if year and year.isdigit():
if int(year) >=1900 and int(year) <=2020:
return year
print valid_year('1970')
Run Code Online (Sandbox Code Playgroud)
为什么1920年不起作用?udacity 的相同功能运行良好......有人请告诉我这两个代码有什么区别
优达学城功能:
def valid_year(year):
if year and year.isdigit():
year = int(year)
if year >=1900 and year <=2020:
return year
print valid_year('1970')
Run Code Online (Sandbox Code Playgroud)
您需要返回一个int,因为 udacity 的函数返回一个整数:
def valid_year(year):
if year and year.isdigit():
if int(year) >=1900 and int(year) <=2020:
return year
def valid_year_uda(year):
if year and year.isdigit():
year = int(year)
if year >=1900 and year <=2020:
return year
print valid_year('1970') == valid_year_uda('1970')
print type(valid_year('1970')), type(valid_year_uda('1970'))
Run Code Online (Sandbox Code Playgroud)
输出:
False
<type 'str'> <type 'int'>
Run Code Online (Sandbox Code Playgroud)
这可以轻松修复,只需替换return year为return int(year):
def valid_year(year):
if year and year.isdigit():
if int(year) >=1900 and int(year) <=2020:
return int(year) #return an integer
print valid_year('1970')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6574 次 |
| 最近记录: |