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

Python字典key超出范围已写判断条件仍报KeyError的原因求助

错误原因解释
  • 核心问题是条件判断的逻辑运算符使用错误,你误将需要的and(逻辑与)写成了or(逻辑或)。
  • 逻辑或or的判定规则是只要任意一个条件成立,整个表达式结果就为真。你传入参数10时,10 > 0的结果为真,所以if (num > 0 or num < 8)的整体判定结果为真,程序会直接进入分支执行return days[num],而10不在days字典的键集合中,就会触发KeyError。
修复方案

你只需要将if判断中的or替换为and即可,修改后代码如下:

def return_day(num):
    days = {1:"Sunday", 2:"Monday", 3:"Tuesday", 4:"Wednesday", 5:"Thursday", 6:"Friday", 7:"Saturday"}
    if num > 0 and num < 8:
        return days[num]
    return "None"
print(return_day(10))

你也可以直接使用字典自带的get方法简化逻辑,无需额外写范围判断也能避免KeyError:

def return_day(num):
    days = {1:"Sunday", 2:"Monday", 3:"Tuesday", 4:"Wednesday", 5:"Thursday", 6:"Friday", 7:"Saturday"}
    return days.get(num, "None")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 14:54:07