功能要求
编写一个控制台应用程序,从键盘上输入年份,输出该年份是否为闰年。说明:闰年的判断规则为,年份能被4整除但不能被100整除的年份,或者能被400整除的年份。
实例代码
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("%d年是闰年"%year)
else:
print("%d年不是闰年"%year)
运行结果
输入“2020”后,year=2020,year % 4 = 0,因此year % 4 == 0结果为True,year % 100 = 20,因此year % 100 != 0结果为True,所以(year % 4 == 0 and year % 100 != 0)结果也为True,最终(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)结果也为True,因此2020是闰年。
输入“2021”后,year=2021,year % 4 = 1,因此year % 4 == 0结果为False,所以(year % 4 == 0 and year % 100 != 0)结果也为False,year % 400 = 21,因此year % 400 == 0结果为False,最终(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)结果也为False,因此2021不是闰年。
知识说明
and运算称为逻辑与运算,表达式的形式为“表达式1 and 表达式2”,当“表达式1”或“表达式2”中有一个为False,则整个表达式的结果为False,只有当“表达式1”和“表达式2”的结果都为True时,整个表达式的结果为True。即:True and False = False;False and True = False;False and False = False;True and True = True。
or运算称为逻辑或运算,表达式的形式为“表达式1 or 表达式2”,当“表达式1”或“表达式2”中有一个为True,则整个表达式的结果为True,只有当“表达式1”和“表达式2”的结果都为False时,整个表达式的结果为False。即:True or False = True;False or True = True;False or False = False;True or True = True。
year % 4 == 0:判断year除以4的余数是否等于0,即判断年份是否能被4整除。
year % 100 != 0:判断year除以100的余数是否不等于0,即判断年份不能被100整除。
year % 4 == 0 and year % 100 != 0:判断年份能被4整除,但不能被100整除。
year % 400 == 0:判断year除以400的余数等于0,即判断年份是否能被100整除。
(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):判断闰年的完整条件,即年份能被4整除且不能被100整除,或年份能被400整除。