Zybooks 6.23实验:闰年函数单元测试失败求助
问题修复方案
问题根源
你的days_in_feb函数当前返回的是布尔值(True/False),但实验明确要求函数返回对应年份二月的天数(28或29)。单元测试的用例是验证函数返回的天数数值,因此返回布尔值会导致测试不通过。
修复后的代码
def days_in_feb(year): # 判断是否为闰年 is_leap = year % 4 == 0 and (year % 400 == 0 or year % 100 != 0) # 返回对应的二月天数 return 29 if is_leap else 28 if __name__ == '__main__': year = int(input()) days = days_in_feb(year) print(f"{year} has {days} days in February.")
修改说明
- 保留原有的闰年判断逻辑(这部分是正确的),将结果赋值给
is_leap变量 - 根据
is_leap的结果,直接返回29(闰年)或28(平年),而非布尔值 - 主程序部分简化为直接获取返回的天数并打印,逻辑更清晰
修改后函数的返回值完全符合实验要求,可通过所有单元测试:
days_in_feb(1913)返回28days_in_feb(1600)返回29days_in_feb(1900)返回28
内容的提问来源于stack exchange,提问作者gbarajas2024
相关产品推荐
相关产品推荐

