【发布时间】:2021-10-13 00:36:32
【问题描述】:
第一个案例
lst = [20, 5, 31, 94, 61, 39]
even_list = []
odd_list = []
for i in range(len(lst)):
if lst[i] % 2 == 0:
even_list.append(lst[i])
even_list.sort()
elif lst[i] % 2 != 0:
odd_list.append(lst[i])
odd_list.sort()
even_cnt = len(even_list)
odd_cnt = len(odd_list)
print(even_cnt,odd_cnt,even_list,odd_list)
第一个案例有效,所以我做了一个函数来排序偶数,奇数(问题发生了!!)
def list_even_odd(original_list):
even_list = []
odd_list = []
for i in range(len(original_list)):
if original_list[i] % 2 == 0:
even_list.append(original_list[i])
even_list.sort()
even_count = len(even_list)
elif original_list[i] % 2 != 0:
odd_list.append(original_list[i])
odd_list.sort()
odd_count = len(odd_list)
list = [20, 5, 31, 94, 61, 39]
even_count, odd_count, even_list, odd_list = list_even_odd(list)
print(even_count, odd_count, even_list, odd_list)
在 Vscode 中,它说 even_count,odd_count 有问题。我该如何解决?
【问题讨论】:
-
你只设置
even_count和odd_count如果确实找到了那种类型的号码;如果没有偶数(例如),那么even_count不为零,它是完全未定义的。无论如何,这些都是你函数中的局部变量——你不返回它们,所以没有办法在你的顶级代码中使用它们。