第3期-判断闰年
1 问题描述
闰年(Leap Year)是为了弥补因⼈为历法规定造成的年度天数与地球实际公转周期的时间差⽽设⽴的,补上时间差的年份为闰年,闰年共有366天
请输⼊⼀个年份,判断输出是否为闰年
2 解题思路
闰年是历法中的名词,分为普通闰年和世纪闰年。
1582年以来设置闰年的规则:
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
也就是说
普通闰年:能被4整除,不能被100整除
世纪闰年:能被400整除
在Python中,判断⼀个数能否被另⼀个数整除,可⽤取模(%)的算法;判断年份是否为闰年可⽤if条件语句
3 解题⽅法
⽅法⼀
year = int(input("输⼊⼀个年份: "))
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print(f"{year} 年是世纪闰年") # 整百年能被400整除的是闰年
else:
print(f"{year} 年不是闰年")
else:
print(f"{year} 年是普通闰年") # ⾮整百年能被4整除的为闰年
else:
print(f"{year} 年不是闰年")
View Code
第1⾏:⽤input函数请⽤户输⼊⼀个年份,int函数将input()的字符串转换成整型,并赋值给变量year
第3⾏:判断该年份能否被4整除,不能被4整除,转到第11⾏,输出该年不是闰年
第4⾏:若能被4整除,则继续判断该年份能否被100整除,不能被100整除,转到第9⾏,输出该年是普通闰年
第5-8⾏:若能被100整除,继续判断该年能否被400整除,若能被400整除,则为世纪闰年,不能被400整除,则不是闰年
在这⾥⽤到了f-string的⽅法格式化字符串,f是“格式化(format)”的意思,如f"Hello {somevar}",这种f
、引号和{}的组合相当于告诉Python:“嘿!这是⼀个格式化字符串,把这些变量放到那⼏个位置”。
中我们同样讲解了⽤format的⽅法来格式化字符串,忘记了的⼩伙伴可以查看哦~
⽅法⼆
year = int(input("输⼊⼀个年份: "))
if year % 4 == 0 and year % 100 != 0:
print(f"{year} 年是普通闰年")
elif year % 400 == 0:
print(f"{year} 年是世纪闰年")
字符串截取第几行else:
print(f"{year} 年不是闰年")
View Code
第1⾏:创建变量year,⽤input()输⼊年份为其赋值
第3-8⾏:⽤if...lse语句进⾏判断。若该年份可以整除4,但不能整除100,则为普通闰年;若该年份可以整除400,则为世纪闰年;否则,该年份不是闰年
⽅法三
year = int(input("输⼊⼀个年份: "))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(f"{year} 年是闰年")
else:
print(f"{year} 年不是闰年")
View Code
第1⾏:创建变量year,⽤input()输⼊年份为其赋值
第3-6⾏:将判断普通闰年和世纪闰年的⽅法合并,当该年份能被4整除且不能被100整除或能被400整除时,为闰年,否则不是闰年

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。