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

Python统计列表奇偶数字数量:代码无法正确计数求助

代码问题排查与修正

问题点分析

  • 函数调用顺序错误:你在定义splitevenodd函数之前就调用了它,而且参数A从未定义,Python会直接抛出NameError。
  • 函数未使用传入参数:函数内部遍历的是全局变量my_numbers,而非参数A,这让函数失去了通用性,也不符合参数传递的逻辑。
  • 计数逻辑完全错误:你定义的my_evennumbers和my_oddnumbers只是包含单个字符串的列表,和函数里实际分离出的奇偶数字列表evenlist、oddlist没有任何关联,用它们的长度统计自然得不到正确结果。

修正后的代码

my_numbers = [12, 21, 33, 14, 57, 6, 17, 10, 11, 28, 3, 32, 2, 4]

def splitevenodd(num_list): 
    evenlist = [] 
    oddlist = [] 
    for i in num_list: 
        if i % 2 == 0: 
            evenlist.append(i) 
        else: 
            oddlist.append(i) 
    print("Even list:", evenlist) 
    print("Odd list:", oddlist) 
    return evenlist, oddlist  # 返回奇偶列表供外部统计使用

# 先定义函数再调用,传入正确的参数
even_nums, odd_nums = splitevenodd(my_numbers)

print("The total count of numbers in my list is", len(my_numbers))
# 用返回的实际奇偶列表统计数量
print("The count of even numbers in my list is", len(even_nums))
print("The count of odd numbers in my list is", len(odd_nums))

关键修正说明

  1. 调整了函数定义和调用的顺序,确保调用前函数已存在,并且传入my_numbers作为参数。
  2. 函数内部改为遍历传入的num_list参数,增强函数的复用性。
  3. 让函数返回分离后的奇偶列表,外部通过len()直接获取正确的计数,不再依赖无关的my_evennumbers、my_oddnumbers变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:17:33