用于在年份列表中列出of年数的功能

时间:2019-03-21 21:40:03

标签: python list leap-year

我不是在寻找答案,而是在寻找正确方向的指针来自己解决这个问题。

我有一个问题,我可以返回八年列表中的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

谢谢。

3 个答案:

答案 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)