鱼C论坛

 找回密码
 立即注册
查看: 759|回复: 6

[已解决]代码不能执行的问题所在,求指教

[复制链接]
发表于 2025-4-4 16:05:49 | 显示全部楼层
问题分析及解决方案

你的代码存在两个关键问题:

  • 逻辑结构错位:闰年判断代码被错误地嵌套在 while 循环内部,导致只有输入错误时才会触发判断
  • 类型转换错误:在循环中将输入转为 int 后,后续循环条件 year.isdigit() 会报错(因为此时 year 是整数类型)


修正后的代码


  1. year = input("请输入一个年份:")

  2. # 先验证输入合法性
  3. while not year.isdigit():
  4.     year = input("抱歉,您的输入有误,请输入一个整数:")

  5. # 类型转换和闰年判断应放在循环外
  6. year = int(year)
  7. if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
  8.     print(f"{year} 是闰年")
  9. else:
  10.     print(f"{year} 不是闰年")
复制代码


改进说明

  • 使用单独的循环处理输入验证,确保获得合法整数
  • 将类型转换和闰年判断放在循环结束后执行
  • 合并了冗余的条件判断,使逻辑更简洁
  • 使用 f-string 提升代码可读性


这个版本会先确保输入是纯数字,然后统一进行类型转换和闰年判断,避免原代码中可能出现的类型错误和逻辑遗漏。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 03:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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