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
相关产品推荐
相关产品推荐

