Python I´;我对定义的函数有问题

Python I´;我对定义的函数有问题,python,function,user-defined-functions,Python,Function,User Defined Functions,我试图创建一个函数,对数字列表进行排序,并将列表分成两个列表:一个用于偶数,另一个用于奇数,我不明白我做错了什么: numbers = [-12, 84, 13, 20, -33, 101, 9] def separated(list_numbers): numbers = numbers.sort() list_even_numbers = [] list_odd_numbers = [] for number in numbers:

我试图创建一个函数,对数字列表进行排序,并将列表分成两个列表:一个用于偶数,另一个用于奇数,我不明白我做错了什么:

numbers = [-12, 84, 13, 20, -33, 101, 9]

def separated(list_numbers):

    numbers = numbers.sort()    
    list_even_numbers = []
    list_odd_numbers = []

    for number in numbers:
        if number % 2 == 0:
            list_even_numbers.append(number)
        else:
            list_odd_numbers.append(number)

    return list_even_numbers, list_odd_numbers


list_even_numbers, list_odd_numbers = separated(numbers)
print(list_even_numbers)
print(list_odd_numbers)
这是我收到的错误消息:

UnboundLocalError                         Traceback (most recent call last)
<ipython-input-43-35d3975ff0c1> in <module>
   16 
   17 
-> 18 list_even_numbers, list_odd_numbers = separated(numbers)
   19 print(list_even_numbers)
   20 print(list_odd_numbers)

<ipython-input-43-35d3975ff0c1> in separated(list_numbers)
   3 def separated(list_numbers):
   4 
-> 5     numbers = numbers.sort()
   6     list_even_numbers = []
   7     list_odd_numbers = []

UnboundLocalError: local variable 'numbers' referenced before assignment
UnboundLocalError回溯(最近一次调用)
在里面
16
17
->18列出偶数,列出奇数=分隔(数字)
19打印(列出偶数)
20打印(列出奇数)
分开(列出编号)
3个分开的def(列表编号):
4.
->5个数字=数字。排序()
6列出偶数=[]
7列出奇数=[]
UnboundLocalError:赋值前引用的局部变量“number”
我做错了什么?

试试下面的方法:

numbers = [-12, 84, 13, 20, -33, 101, 9]

def separated(list_numbers):

    list_numbers.sort()    
    list_even_numbers = []
    list_odd_numbers = []

    for number in list_numbers:
        if number % 2 == 0:
            list_even_numbers.append(number)
        else:
            list_odd_numbers.append(number)

    return list_even_numbers, list_odd_numbers


list_even_numbers, list_odd_numbers = separated(numbers)
print(list_even_numbers)
print(list_odd_numbers)

函数的第一行应该是
list\u numbers=sorted(list\u numbers)
您应该将
numbers
替换为
list\u numbers
请解释您所做的更改以及为什么…我将您的this line numbers=numbers.sort()更改为list\u numbers.sort()因为您使用的是函数参数,而不是外部定义的数组