为什么它只是打印今天的日期而不是过去五年的日期

时间:2017-08-04 15:55:14

标签: python python-3.x

为什么它只在今天的日期打印而不是在过去五年的日期打印?

    from datetime import date
    from datetime import timedelta
    today = date.today()
    for i in range(1826):
        res = today - timedelta(days=i)
        f1 = res.strftime("%d-%m-%Y")
        f2 = res.strftime("%m-%d-%y")
        f3 = res.strftime("%d-%b-%y")
        f4 = res.strftime("%d-%B-%Y")
    print(f1)
    print(f2)
    print(f3)
    print(f4)

输出

05-08-2012
08-05-12
05-Aug-12
05-August-2012

3 个答案:

答案 0 :(得分:2)

将打印功能放在for循环中。

答案 1 :(得分:1)

您的print语句没有在for循环中缩进,因此您只获得最后的结果。

答案 2 :(得分:1)

您需要将print函数放入循环中:

for i in range(1826):
    res = today - timedelta(days=i)
    f1 = res.strftime("%d-%m-%Y")
    f2 = res.strftime("%m-%d-%y")
    f3 = res.strftime("%d-%b-%y")
    f4 = res.strftime("%d-%B-%Y")
    print(f1)
    print(f2)
    print(f3)
    print(f4)

虽然你可以改为:

for i in range(1826):
    res = today - timedelta(days=i)
    print(res.strftime("%d-%m-%Y"))
    print(res.strftime("%m-%d-%y"))
    print(res.strftime("%d-%b-%y"))
    print(res.strftime("%d-%B-%Y"))