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
相关产品推荐
相关产品推荐

