|
|
鱼油你好! 你的代码功能实现正确,能够判断闰年和非闰年,也能处理输入错误。作为新手,能写出逻辑清晰的代码已经很不错了!下面给你提几个简洁的改进建议,让代码更易读、更Pythonic。
1. 函数和变量命名
asd 建议改为有意义的名称,比如 day_of_year;参数 n, y, r 改为 year, month, day。
2. 简化月份天数判断
可以用列表存储每月天数,然后根据闰年修改2月天数,用 sum 直接计算前几个月的天数。
3. 减少重复的输入校验
先判断闰年,再统一检查各月份天数,逻辑会更清晰。
下面是一个改进版参考:
- def day_of_year(year, month, day):
- if month < 1 or month > 12:
- return "输入错误!"
- days_in_month = [31, 28, 31, 30, 31, 30,
- 31, 31, 30, 31, 30, 31]
- # 闰年判断
- if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
- days_in_month[1] = 29
- if day < 1 or day > days_in_month[month - 1]:
- return "输入错误!"
- return sum(days_in_month[:month - 1]) + day
- year = int(input("请输入年份:"))
- month = int(input("请输入月份:"))
- day = int(input("请输入日:"))
- print(day_of_year(year, month, day))
复制代码
这个版本更简洁,并且避免了一长串的 or 和 if 嵌套。如果有其他疑问,欢迎继续交流!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|