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

Python列表多值匹配输入120报错,期望输出Progress的问题排查

解决Python列表匹配时的TypeError及逻辑错误问题

问题根源

  1. TypeError报错原因:代码中elif Pass_Input in Pass[0]这一行,Pass[0]是整数0,而in运算符仅能作用于可迭代对象(如列表、字符串),整数不属于可迭代对象,因此触发类型错误。
  2. 逻辑错误导致预期输出失效:输入120时,Pass[5:6]是左闭右开切片,仅包含索引5的元素100,120不在该切片范围内,因此无法触发Progress输出分支。

修正后的代码

以下是修正了错误并符合预期逻辑的代码:

Pass = [0, 20, 40, 60, 80, 100, 120]
while True:
    Pass_Input = int(input("Enter : "))
    # 匹配100和120,对应原列表索引5、6的元素
    if Pass_Input in Pass[5:7]:
        print("Progress")
    # 若输入0需要优先触发Exclude,需将此条件移至此处之前
    elif Pass_Input in Pass[0:2]:
        print("Progress Module Trailer")
    # 直接判断单个值相等,而非用in操作符
    elif Pass_Input == Pass[0]:
        print("Exclude")

关键修正点

  • 调整切片范围:将Pass[5:6]改为Pass[5:7],确保包含120;也可直接写Pass_Input in [100, 120],逻辑更直观。
  • 修复类型错误:将in Pass[0]改为== Pass[0],直接判断输入值与目标整数相等。
  • 可选逻辑调整:如果输入0时预期输出Exclude而非Progress Module Trailer,需要将elif Pass_Input == Pass[0]这一分支移至elif Pass_Input in Pass[0:2]之前,避免被提前匹配。

测试验证

输入120时,代码会进入第一个条件分支,输出Progress,符合预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:10:23