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

Python代码执行异常:VS Code未输出预期问候语求助

代码问题分析与修复

核心问题

你的代码存在两个关键问题,导致运行异常:

1. 类型不匹配引发执行中断

time.strftime("%H")返回的是字符串类型的小时值(例如"22"),你直接将其与整数(0、12等)比较,在Python 3中会触发TypeError(字符串与整数不支持直接比较)。这会导致程序在执行第一个if判断时就终止,后续代码自然无法执行——这就是你在VS Code中输出22却没有问候语的原因。

2. 逻辑矛盾的条件判断

第三个if的条件t >= 18 and t < 0永远不可能成立:没有任何数值能同时满足大于等于18且小于0,所以即使小时处于18-23区间,这个分支也不会被执行。

修复后的代码

import time
# 将字符串格式的小时转换为整数,解决类型不匹配问题
t = int(time.strftime("%H"))
print(t)

if t > 0 and t < 12:
    print("Good Morning")
elif t >= 12 and t < 18:
    print("Good Afternoon")
# 修正逻辑,覆盖18-23的小时区间
elif t >= 18:
    print("Good Night")

补充说明

  • 你在replit中能正常运行,大概率是因为该环境使用Python 2(Python 2允许字符串与整数比较,按类型优先级判定字符串始终大于整数),但这种写法在Python 3中完全不合法,必须做类型转换。
  • 修复后的代码通过int()转换解决类型问题,同时将第三个分支改为elif减少冗余判断,确保所有小时区间都能被正确覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:33:25