你的任务是编写和测试一个函数,该函数接受两个参数(年份和月份),并返回给定月份/年份组合的天数(是的,我们知道只有二月份会受到年份值的影响,但我们希望函数是通用的)。现在,请确保函数在其参数不合理的情况下返回None。
使用填充了月份长度的列表。你可以在函数内部创建它 - 这个技巧将显著缩短代码。
我已经写出了代码,但不确定如何添加'none'的部分。能有人帮我吗?
使用填充了月份长度的列表。你可以在函数内部创建它 - 这个技巧将显著缩短代码。
我已经写出了代码,但不确定如何添加'none'的部分。能有人帮我吗?
def IsYearLeap(year):
if (year%4==0):
return True
if (year%4!=0):
return False
def DaysInMonth(year,month):
if month in {1, 3, 5, 7, 8, 10, 12}:
return 31
elif month==2:
if IsYearLeap(year):
return 29
else:
return 28
elif month in {4,6,8,9,11}:
return 30
else:
return none
testyears = [1900, 2000, 2016, 1987,2019]
testmonths = [ 2, 2, 1, 11,4]
testresults = [28, 29, 31, 30,33]
for i in range(len(testyears)):
yr = testyears[i]
mo = testmonths[i]
print(yr,mo,"->",end="")
result = DaysInMonth(yr,mo)
if result == testresults[i]:
print("OK")
else:
print("Failed")
None
。 - Michael Butscher