2017-08-04 73 views
-2

为什么只印刷今天的日期而不是最近的五年的日期?为什么只是印刷今天的日期而不是最后五年的日期

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

因为打印语句外的for循环 – wpercy

回答

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")) 
2

将打印功能内部的for循环。

1

您的打印语句不会在for循环中缩进,因此您只能得到最后一个结果。