You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python技术需求:识别输入是否为整数及判断输入能否被4整除

嘿,我来帮你梳理并修正这段闰年判断代码,同时搞定你提到的两个需求~

原代码的问题分析
  • 首先,input()获取的是字符串类型,直接做除法运算会触发TypeError——字符串可不能和数字直接算除法哦
  • 其次,((year_input)/4)== int这个判断逻辑完全跑偏了:int是Python的类型对象,不是具体数值,你真正要判断的应该是“除以4后余数为0”,这得用取模运算符%
  • 最后,闰年的判断规则不止“能被4整除”,完整规则是:能被4整除但不能被100整除,或者能被400整除的年份才是闰年
满足需求的修正代码

先实现需求1(识别输入是否为整数),再实现需求2(判断除以4是否为整数),最后补上完整的闰年判断逻辑:

# 获取用户输入
year_input = input("Tell me which year to look up and I will tell you if it was a leap year: ")

# 需求1:验证输入是否为有效整数
if not year_input.isdigit():
    print("Oops, please enter a valid integer year!")
else:
    # 把输入转换为整数类型
    year = int(year_input)
    
    # 需求2:先判断是否能被4整除
    if year % 4 != 0:
        print("Nope, it's not a leap year")
    else:
        # 完善闰年的完整判断逻辑
        if year % 100 != 0 or year % 400 == 0:
            print("Yep, it's a leap year")
        else:
            print("Nope, it's not a leap year")
代码细节解释
  • 输入验证:用isdigit()方法检查输入字符串是否全为数字,完美实现需求1的整数识别功能
  • 取模判断:year % 4会返回除以4后的余数,余数为0就说明能被4整除,满足需求2的判断逻辑
  • 准确的闰年规则:在能被4整除的基础上,进一步判断是否符合“整百年需被400整除”的规则,避免像1900年这种能被4整除但不是闰年的错误判断

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:24:46