新手求教关于闰年的问题
temp = input('请输入一个年份:')year = int(temp)
if year/400 == int(year/400):
print(' 是闰年!')
else:
if (year/4 == int(year/4)):
print(temp + ' 这是闰年!')
else:
(year/100 != int(year/100))
print(temp + ' 不是闰年!')
这是小弟自己改的一段代码,为什么输入1900直接跳入第二个if函数去了,1900明显不能被400整除但为什么还是显示这是闰年呢?我还想做个循环。输入年份以后再输入一个年份,这循环条件怎么加呢? 好厉害 你自己写错判定的顺序了,应该先判定能不能除4,再判断能不能除100,最后判断能不能除400 学习了 把判断的逻辑改了一下,并且添加了循环输入和退出的功能。
temp = input('请输入一个年份: (输入q退出)')
while( temp != 'q'):
year = int(temp)
if year/400 == int(year/400):
print("是闰年")
elif year/4 == int(year/4):
if year/100 != int(year/100):
print("是闰年")
else:
print("不是闰年")
else:
print("不是闰年")
temp = input('请输入一个年份: (输入q退出)')
print("程序结束")
闰年的判断原理如下。我也是查完才刚明白原来是这么回事。
定制闰年规则不是随意设置的。
首先我们要知道,年的概念,是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是很遗憾的是这个周期并不能被一天的时间整除,真正的一年其实是365.2423天(目前)。
所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。规则为:
·1)如果年份能被4整除,则该年计为闰年;
可是,假如不做调整的话,当400年的时候,累计才多出96.92天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。怎么撤销呢?就有了下面这个规则:
·2)如果年份能被100整除,则不计为闰年;
问题又来了,400年里有4个,又少了一个,所以再加一个规则就是:
·3)如果年份能被400整除,则计为闰年。
这样每400年里设置了97个闰年,误差被调整到400年仅有0.08天,而设置规则也并不是很麻烦,所以一直沿用了下来。 你第一个条件不满足,肯定会跳到第二个。
闰年的定义是:
①、普通年能被4整除且不能被100整除的为闰年.(如2004年就是闰年,1901年不是闰年)地球公转示意图
②、世纪年能被400整除的是闰年.(如2000年是闰年,1900年不是闰年)
③、对于数值很大的年份能整除3200,但同时又能整除172800则又是闰年.(如172800年是闰年,86400年不是闰年)
temp = input('请输入一个年份: (输入q退出)')
while( temp != 'q'):
year = int(temp)
if year/400 == int(year/400):
print("是闰年")
elif year/4 == int(year/4):
if year/100 != int(year/100):
print("是闰年")
else:
print("不是闰年")
else:
print("不是闰年")
temp = input('请输入一个年份: (输入q退出)')
print("程序结束")
页:
[1]