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

Python奇偶分类排序函数在VSCode报even_count、odd_count错误如何修复?

错误原因

  • 你定义的list_even_odd函数没有显式返回值,Python中函数没有写return语句时默认返回None,你尝试将None解包为4个变量自然会触发报错。
  • even_count和odd_count的定义放在了if/elif分支内部,如果输入列表全是偶数,odd_count不会被定义,反之even_count不会被定义,运行时会报变量未定义的错误。
  • 你用了Python内置关键字list作为变量名,会覆盖自带的列表类型,属于不规范的编码习惯。
  • 额外优化提示:不需要每次追加元素都排序,全部筛选完再排序一次即可,运行效率更高。

修复后的代码

def list_even_odd(original_list):
    even_list = []
    odd_list = []
    # 直接遍历元素即可,不需要按索引取值
    for num in original_list:
        if num % 2 == 0:
            even_list.append(num)
        else:
            odd_list.append(num)
    # 全部筛选完成后统一排序
    even_list.sort()
    odd_list.sort()
    even_count = len(even_list)
    odd_count = len(odd_list)
    # 显式返回需要的四个值
    return even_count, odd_count, even_list, odd_list

# 避免用list作为变量名,修改为自定义名称
test_list = [20, 5, 31, 94, 61, 39]
even_count, odd_count, even_list, odd_list = list_even_odd(test_list)
print(even_count, odd_count, even_list, odd_list)

运行输出

2 4 [20, 94] [5, 31, 39, 61]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:36:03