题目:函数-Function

解题方案:
在公历中,闰年有三种判断条件:
- 年份能被4整除,即为闰年,除非:
- 年份可以被 100 整除,则不是闰年,除非:
- 该年份也能被 400 整除。那么该年就是闰年。
- 年份可以被 100 整除,则不是闰年,除非:
这意味着在公历中,2000 年和 2400 年是闰年,而 1800、1900、2100、2200、2300 和 2500 年不是闰年
解题代码:
正常逻辑判断:
def is_leap(year):
leap = False
if year % 4 == 0:
leap = True
if year % 100 == 0:
leap = False
if year % 400 == 0:
leap = True
else:
leap = False
return leap
year = int(input())
print(is_leap(year))
优化代码:
- 布尔表达式直译规则 将闰年判断条件
(能被4整除且不能被100整除) 或 (能被400整除)
转换为表达式:year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
- 消除中间变量 直接返回布尔运算结果,省去
leap
变量的多次赋值。 - 逻辑显式化 通过括号明确运算优先级,避免多层嵌套
if
,代码可读性显著提升。 - 验证用例覆盖
- 2000年(被400整除)→
True
- 1900年(被100整除但不被400整除)→
False
- 2020年(被4整除但不被100整除)→
True
- 2021年(不被4整除)→
False
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
year = int(input())
print(is_leap(year)) - 2000年(被400整除)→
文章评论