Python程序中and运算符失效:我的代码为何无输出?
问题分析与解决
核心错误
你代码里的第三个elif条件逻辑完全不成立:
elif int(gt.now.strftime("%H")) >= 17 and int(gt.now.strftime("%H")) < 0:
%H获取的是24小时制的小时数,范围是00到23,转成整数后不可能同时满足大于等于17和小于0。所以当当前时间在17点及以后时,没有任何分支能匹配,自然不会输出问候语。
修复方案
把第三个分支改成else就行,因为前两个条件已经覆盖了0-11、12-16的情况,剩下的17-23直接用else兜底:
另外建议把重复计算的小时值存成变量,避免多次转换,代码更简洁:
import greettime as gt current_hour = int(gt.now.strftime("%H")) if current_hour < 12: print("Good Morning, Rudra!") elif 12 <= current_hour < 17: print("Good Afternoon, Rudra!") else: print("Good Evening, Rudra!") print(current_hour)
额外小技巧
Python支持连续比较,比如12 <= current_hour < 17,比用and写两个分开的条件更直观易读。
内容的提问来源于stack exchange,提问作者Rudra
相关产品推荐
相关产品推荐

