You need to enable JavaScript to run this app. Python中if语句使用不等于判断报ValueError错误问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Python中if语句使用不等于判断报ValueError错误问题咨询

问题原因分析
  • 首先你的比较逻辑本身存在语法错误:你用or连接三个不等判断,该条件永远为真。任意变量不可能同时等于'{'、','、'}'三个不同的字符,所以三个判断至少有两个成立,or连接后整个if条件始终触发,else分支永远不会执行。如果你确实需要排除这三个字符,应该把or改为and,或者更简洁的写法是if i not in {'{', ',', '}'}。
  • 其次这段判断逻辑完全不符合你当前代码的运行场景:你定义的c是Python原生的集合类型,遍历集合得到的元素本身就是1、2、3这类整数,根本不会出现'{'、','这类字符串符号,完全不需要做这类字符判断。
  • 你贴的代码本身不会触发你提到的报错,如果你实际运行的代码里c是类似"{1,2,3,4,5}"的字符串类型,那么遍历字符串得到的字符会包含括号、逗号,此时你的错误判断逻辑会让这些非数字字符进入int()转换分支,直接触发你收到的报错。
修正代码

场景1:c本身是集合类型

直接删除无用的字符判断即可:

c={1,2,3,4,5}
LE=[]  #to store even numbers
LO=[]   #to store odd numbers
for i in c:
    if(i%2==0):
        LE.append(i)
    else:
        LO.append(i)

print(LE)            
print(LO) 

场景2:c是字符串格式的集合内容

只保留数字字符做处理即可:

c="{1,2,3,4,5}"
LE=[]  #to store even numbers
LO=[]   #to store odd numbers
for i in c:
    if(i.isdigit()):
        num = int(i)
        if(num%2==0):
            LE.append(num)
        else:
            LO.append(num)

print(LE)            
print(LO) 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:51:02