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

Python中如何关联用户输入与hammer_time函数?代码排错

帮你搞定Python代码的输入与函数调用问题

嘿,欢迎加入Stack Overflow大家庭!咱们来一步步梳理你代码里的问题,把它改得能正常实现你的需求~

首先,先说说你代码里的几个核心问题:

  • 输入类型不匹配:input()获取的内容默认是字符串,直接和数字(比如7、9)比较会触发类型错误,得先把输入转换成整数或浮点数才行。
  • 函数未被调用:你定义了hammer_time函数,但拿到用户输入的hour后,根本没把这个值传给函数执行,所以函数完全没发挥作用。
  • 条件逻辑存在bug:
    • 午餐时间的判断hour >=12 and hour <=2:12比2大,这个条件永远不会成立,应该改成hour >=12 and hour <=14(对应24小时制的中午12点到下午2点)
    • 晚餐时间的条件和早餐完全重复了,得改成合理范围,比如hour >=18 and hour <=20(晚上6点到8点)
    • “hammer time”的hour >=10 and hour <=4逻辑错误,10比4大,这个条件永远不成立,如果是想覆盖晚上10点到凌晨4点,应该写成hour >=22 or hour <=4

接下来是修正后的完整代码,我加了注释方便你理解:

# 获取用户输入并转为整数(如果要支持带小数的时间,比如7.5,就用float())
hour = int(input("What time is it? (请输入24小时制数字,例如7代表7点,22代表晚上10点)"))

def hammer_time(hour):
    if 7 <= hour <= 9:
        print("It's breakfast time!")
    elif 12 <= hour <= 14:
        print("It's lunch time!")
    elif 18 <= hour <= 20:
        print("It's dinner time!")
    elif hour >= 22 or hour <= 4:
        print("It's hammer time!")
    else:
        print("Nothing is scheduled at this time.")

# 调用函数,把用户输入的hour传递进去
hammer_time(hour)

如果你想用12小时制的话,还需要额外处理上午/下午的输入,但目前用24小时制修正最直接好懂~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:15:31