VS Code中Python小时转换程序输入大于24时无输出问题求助
问题排查与修复
问题根源
你的代码存在逻辑覆盖不全的问题:
- 嵌套的
if语句仅处理了「刚好等于1天」「刚好等于1周」「刚好等于1个月」的极端情况,以及小时数小于24的情况。 - 对于其他大于24小时的输入(比如25小时、100小时),程序会进入没有
print语句的分支,自然无任何输出。 - 代码中
hrs = hrs属于冗余无效代码,可直接删除。
修复后的代码
重构逻辑,覆盖所有输入场景,同时优化单复数显示:
hrs = int(input("How many hours do you want? ")) if hrs < 24: print(f"You have {hrs} hour" if hrs == 1 else f"You have {hrs} hours") else: days = hrs / 24 if days < 7: print(f"{hrs} hours is equal to {days:.2f} day" if days == 1 else f"{hrs} hours is equal to {days:.2f} days") else: weeks = days / 7 if weeks < 4: print(f"{days:.2f} days is equal to {weeks:.2f} week" if weeks == 1 else f"{days:.2f} days is equal to {weeks:.2f} weeks") else: months = weeks / 4 print(f"{weeks:.2f} weeks is equal to {months:.2f} month" if months == 1 else f"{weeks:.2f} weeks is equal to {months:.2f} months")
修复说明
- 用分层判断覆盖所有数值范围,确保任何输入都有对应输出。
- 使用
f-string简化字符串拼接,同时通过三元表达式处理单复数显示。 - 添加
.2f格式化输出,避免转换后出现过多小数位(可根据需求调整精度)。 - 删除冗余的无效代码。
内容的提问来源于stack exchange,提问作者Ruby Rose
相关产品推荐
相关产品推荐

