鱼C论坛

 找回密码
 立即注册
查看: 3165|回复: 4

[已解决]简单python代码问题

[复制链接]
发表于 2023-7-18 10:16:29 | 显示全部楼层    本楼为最佳答案   
问题的原因在于你如何检查月份是否在某个特定的集合中。在 Python 中,语句如  if month == (1 or 3 or 5 or 7 or 8 or 10 or 12)  实际上并不会按照你想要的方式工作。 or  运算符在 Python 中返回第一个非“假”值。因此  (1 or 3 or 5 or 7 or 8 or 10 or 12)  实际上只会返回  1 ,原因是在 Python 中,所有非零整数都被视为真值。所以,该语句只有当  month  为  1  时才会返回真,这就是为什么你的代码在处理 3-12 月份时会失效。

如果你希望检查  month  是否在一组特定的值中,可以使用  in  运算符和一个元组或列表。以下是一个修改过的版本:
  1. year = input("请输入年份数字:")
  2. year = int(year)
  3. month = input("请输入月份数字:")
  4. month = int(month)
  5. if month in {1, 3, 5, 7, 8, 10, 12}:
  6.     print("这个月有31天")
  7. elif month in {4, 6, 9, 11}:
  8.     print("这个月有30天")
  9. elif month == 2:
  10.     if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
  11.         print("这个月有29天")
  12.     else:
  13.         print("这个月有28天")
复制代码

这里,我们使用  {}  创建了一组月份,并使用  in  运算符检查  month  是否在这些月份中。我们还修复了计算闰年的代码,原代码只考虑了能被4整除的年份为闰年,但实际上还需要考虑不能被100整除,或者能被400整除的年份才是闰年。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-29 06:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表