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))
关键修正说明
- 调整了函数定义和调用的顺序,确保调用前函数已存在,并且传入
my_numbers作为参数。 - 函数内部改为遍历传入的
num_list参数,增强函数的复用性。 - 让函数返回分离后的奇偶列表,外部通过
len()直接获取正确的计数,不再依赖无关的my_evennumbers、my_oddnumbers变量。
内容的提问来源于stack exchange,提问作者Learning
相关产品推荐
相关产品推荐

