我的陈述不起作用,我不知道为什么



我将代码编辑到现在可以工作的地步:

def Reset():
data = []
data.append({
'year': now.year,
'months': []
})
for year in range(len(data)):
for month in range(12):
data[year]['months'].append({
'month': (month + 1),
'days': []
})
if (month+1 == 2):
daysAmount = 28
if (is_leap_year(now.year)):
daysAmount = 29
elif ((month+1) == 12):
daysAmount = 31
elif ((month+1)%2 == 0):
daysAmount = 30
else:
daysAmount = 31
for day in range(daysAmount):
data[year]['months'][month]['days'].append({
'day': (day + 1),
})
with open('data.json', 'w') as outfile:
json.dump(data, outfile)

重置((这是我让它工作后的输出:

[{"year": 2021, "months": [{"month": 1, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 2, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}]}, {"month": 3, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 4, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 5, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 6, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 7, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 8, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 9, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 10, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 11, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 12, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}]}]

经过核对的答案解决了我的问题。

此代码中有多个错误。

  1. 闰年检查不正确。这是一个检查闰年的功能:
def is_leap_year(year: int) -> bool:
"""Determine whether a year is a leap year."""

return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
is_leap_year(2020)  # True
is_leap_year(2022)  # False
  1. 这应该是elif
if ((month+1) == 12):
  1. 偶数/奇数检查不正确。可以使用%(模数运算符(
if (month + 1) % 2 == 0:  # even
if (month + 1) % 2 != 0:  # odd

您检测月份的方法是错误的。您希望4/2是int类型,但事实并非如此。

type((3+1)/2)
<class 'float'>

无论如何,按类型检测偶数/奇数是非常错误的。

您应该使用运算符%

if ((month+1) == 12):
daysAmount = 31
elif ((month+1)%2) == 0):
daysAmount = 30
else:
daysAmount = 31

相关内容

最新更新