【发布时间】:2020-12-24 05:52:07
【问题描述】:
我是 python 的初学者,我制作了这个随机日期生成器,它应该生成年-月-日输出。 4、6、9、11 个月有 30 天,其他的都是 31 天。
但是我遇到了一个问题,即闰年的 2 月仍然会生成 date=30,尽管 if 和 elif 的条件是 M 必须为 2。
import random
import calendar
for i in range(500):
Y = rand.randint(0, 170)
M = rand.randint(1, 12)
if calendar.isleap(G+1850) == True and M == 2:
D = rand.randint(1, 28)
elif calendar.isleap(G+1850) == False and M == 2:
D=rand.randint(1, 29)
if M == 4 or M == 6 or M == 9 or M == 11:
D=rand.randint(1, 30)
else:
D=rand.randint(1, 31)
【问题讨论】:
-
你的意思是写
if calendar.isleap(Y+1850)? -
rand定义在哪里? -
如果 "M == 2" 则执行最后的 else-block 并覆盖 "D"。
-
@MichaelButscher:这看起来像是对我的回答。
-
@ScottHunter 完成
标签: python date if-statement random