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

Python编写提取集合中奇数并忽略非数值元素的函数及报错解决

代码问题排查

你的代码存在以下几处核心错误:

  • 循环内操作对象错误:遍历得到的单个元素是i,但你所有判断、运算都是针对整个输入参数x,自然会出现类型报错
  • 类型校验逻辑错误:仅判断了int类型,不符合题目要求的兼容布尔值、整数型浮点数的规则
  • 逻辑判断顺序错误:先执行取模运算再校验类型,遇到非数值类型时必然触发运算报错
  • 功能不符要求:没有定义结果收集容器,仅打印内容没有返回值,不符合函数返回列表的要求

修正后的代码

def odd_numbers1(x):
    res = []
    for i in x:
        # 先校验是否为数值类型
        if not isinstance(i, (int, float)):
            continue
        # 浮点类型需要先判断是否为整数
        if isinstance(i, float):
            if not i.is_integer():
                continue
        # 判断是否为奇数
        if i % 2 != 0:
            res.append(i)
    return res

代码验证

  • 调用odd_numbers1([1,2,3,3,'3']),返回结果为[1, 3, 3],符合示例1要求
  • 调用odd_numbers1([False,True,3,5.0,7.5]),返回结果为[True, 3, 5.0],符合示例2要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:00:05