我不是在寻找答案,而是在寻找正确方向的指针来自己解决这个问题。
我有一个问题,我可以返回八年列表中的leap年数。我不确定该如何处理。我曾尝试过使用FOR LOOP,也曾尝试同时使用calendar.isleap和calendar.leapdays方法,但是我似乎遗漏了一些东西,因为我仍然遇到错误。
---代码如下---
def countLeapYears(yearList):
(学生代码在这里。)
print(countLeapYears([2001, 2018, 2020, 2090, 2233, 2176, 2200, 2982]))
print(countLeapYears([2001, 2018, 2020, 2092, 2204, 2176, 2200, 2982]))
我已经编辑并提出了问题,因为我的请求被标记为“等待中”,因为看起来好像没有足够的信息。所以上面是实际的问题。
我尝试过的是这个
ly = 0
for i in yearList:
if i % 4 == 0:
ly += 1
谢谢。
答案 0 :(得分:1)
考虑到您的输入是一个列表,而不是两个值之间的范围,因此您当前正在尝试调用错误的函数。
我建议编写自己的函数,该函数将列表作为输入参数,并在其算法中利用模运算符:https://python-reference.readthedocs.io/en/latest/docs/operators/modulus.html
答案 1 :(得分:1)
好的...谢谢我的输入。在一些帮助下,我朝着正确的方向前进,这就是我所拥有的。它有效,答案就是我应该的。
import calendar
def countLeapYears(yearList):
j=0
for i in listYears:
if calendar.isleap(int(i)):
j += 1
return j
预期输出:2
print(countLeapYears([2001,2018,2020,2090,2233,2176,2200, 2982]))
预期输出:4
print(countLeapYears([2001,2018,2020,2092,2204,2176,2200, 2982]))
答案 2 :(得分:0)
如果您只是在寻找正确方向的指针,则为您尝试调用的函数的源代码。该文档字符串可能会有所帮助:D
def leapdays(y1, y2):
"""Return number of leap years in range [y1, y2).
Assume y1 <= y2."""
y1 -= 1
y2 -= 1
return (y2//4 - y1//4) - (y2//100 - y1//100) + (y2//400 - y1//400)