Python とプログラミング全体に非常に慣れています。なぜこのコードは:
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
years = [year1, year2]
def leapyr(n):
if n % 400 == 0:
return True
elif n % 100 == 0:
return False
elif n % 4 == 0:
return True
else:
return False
for i, year in enumerate(years):
if leapyr(year):
years[i] = year * 366
print 'l:', years, year1, year2
else:
years[i] = year * 365
print 'n:', years, year1, year2
daysBetweenDates(1,1,1,4,2,1)
year1 と year2 を年 [ ] で変更しますが、year1 と year2 は変更しませんか?
n: [365, 4] 1 4
l: [365, 1464] 1 4
編集:作業コード
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
years = [year1, year2]
def leapyr(n):
if n % 400 == 0:
return True
elif n % 100 == 0:
return False
elif n % 4 == 0:
return True
else:
return False
for i, year in enumerate(years):
if leapyr(year):
years[i] = year * 366
year1 = years[0]
year2 = years[1]
print 'l:', years, year1, year2
else:
years[i] = year * 365
year1 = years[0]
year2 = years[1]
print 'n:', years, year1, year2
daysBetweenDates(1,1,1,400,2,1)
正しい答えが得られます:
n: [365, 400] 365 400
l: [365, 146400] 365 146400
あなたの投稿はコードが多すぎるようです。ここにテキストを追加してください。テキストは重要です。