0
我試圖寫一個日曆。但for循環只會打印出第一個月的日子。如果我嘗試打印循環後的日子,它將工作。有誰知道發生了什麼事?Python:For循環沒有按預期迭代
cal_year = input('Enter a year (YYYY): ')
def not_common(year):
if (year % 4 == 0):
if (year % 100 == 0):
if (year % 400 == 0):
return 1
else:
return 0
else:
return 1
else:
return 0
leap = not_common(cal_year)
if leap == 0:
print 'This is not a leap year'
elif leap == 1:
print 'This is a leap year'
else:
print 'unexpected calculation error'
y1900=1
day = ((cal_year-1900)*365)%7
month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
calendar = [range(1,32), range(1,29), range(1,32), range(1,31), range(1,32), range(1,31),\
range(1,32),range(1,32),range(1,31),range(1,32),range(1,31),range(1,32)]
if (leap == 1):
calendar[1] = range(1,30)
week = ['su','mo','tu','we','th','fr','sa']
r = 0
for i in range(0,12):
print month[i]
print ' '.join(str(y) for y in week)
for j in range (1, (len(calendar[i])/7)+2):
#cal =' '.join(str(x).zfill(2) for x in calendar[i][r*7:7*(r+1)])
print ' '.join(str(x).zfill(2) for x in calendar[i][r*7:7*(r+1)])
r += 1
print
print calendar[1]
print calendar[11]
麻煩的線被認爲是: '。加入(STR(x)的.zfill(2)在日曆X [I] [R * 7:7 *(R + 1)] )
@馬克的答案指出了這個程序的一些問題。另一個問題是你計算'日',假定在給定年份和1900年之間沒有閏年。這實際上並沒有影響代碼,因爲它不會使用'日'。 –