【问题标题】:Python for-loop, range counter [duplicate]Python for循环,范围计数器[重复]
【发布时间】:2018-11-04 03:12:08
【问题描述】:

我制作了一个程序来打印一年中的每个日期。是否可以添加一个允许限制可打印日期的计数器?例如,我每 7 天打印一次。感谢您的任何建议。 原代码如下。

def main():

    for month in range(1, 13):
        daymax = 32
        if month == 2:
            daymax = 29
        elif month == 4:
            daymax = 31
        elif month == 6:
            daymax = 31
        elif month == 9:
            daymax = 31
        elif month == 11:
            daymax = 31

        for day in range(1, daymax):
            print(day,".", month,".", sep="")


main()

【问题讨论】:

  • 看看datetime 模块。
  • 这是一个非常强大的日期时间和时间增量候选者。您将获得各种好处,例如闰年支持、时区等。
  • 另外,看看calendar module
  • daymax = 29 仅适用于闰年。

标签: python for-loop counter


【解决方案1】:

只需使用另一个计数器变量,并检查它是否是7 的倍数。

def main():
    counter = 0
    for month in range(1, 13):
        daymax = 32
        if month == 2:
            daymax = 29
        elif month == 4:
            daymax = 31
        elif month == 6:
            daymax = 31
        elif month == 9:
            daymax = 31
        elif month == 11:
            daymax = 31

        for day in range(1, daymax):
            if counter % 7 == 0:
                print(day,".", month,".", sep="")
            counter += 1

【讨论】:

  • @DeepSpace 这行不通,因为月份不是 7 天的倍数。
  • 1 月 28 日之后的 7 天是 2 月 4 日,但这会打印 2 月 1 日。
  • 确实......
  • @DeepSpace: counter一年中的第几天,而不是一个月中的第几天。
  • 比你!这行得通,但我还有一个小问题:现在打印从每月的第一天开始。第一天应该是 3.1,然后每 7 天打印一次。
【解决方案2】:
if day % 7 == 0 

应该可以。试试看。

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2022-12-16
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多