【问题标题】:python list problem-Why does the function produce light blue?-vscodepython list问题-为什么函数会产生浅蓝色?-vscode
【发布时间】: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_countodd_count如果确实找到了那种类型的号码;如果没有偶数(例如),那么even_count 不为零,它是完全未定义的。无论如何,这些都是你函数中的局部变量——你不返回它们,所以没有办法在你的顶级代码中使用它们。

标签: python list tuples


【解决方案1】:

您需要在您的功能上return。试试看:

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)
    return even_count, odd_count, even_list, odd_list

【讨论】:

  • 非常感谢。你救了我!!!
猜你喜欢
  • 2016-09-10
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 2019-03-22
相关资源
最近更新 更多