Почему в аргументе функции выводит ошибку?

введите сюда описание изображения почему если я передаю в качестве аргумента сам список, то выдает ошибку, но если список приравнять к переменной, и передать ее, то ошибки не будет?

введите сюда описание изображения


Ответы (1 шт):

Автор решения: magistar

Вы не совсем понимаете, как работает объявление функции. Когда вы объявляете функцию, в скобках вы указываете имя переменной, которая будет использоваться в функции. Пользователь будет передавать в эту функцию объект при её вызове, а объект будет присваиваться этой переменной в коде функции. То есть, к примеру:

def my_function(a):

В этой строке задаётся локальная переменная a, которая будет использоваться в самой функции. К примеру, мы хотим, чтобы функция возвращала нам отсортированный список. Мы пишем такой код:

def my_function(a):
    return sorted(a)

Обратите внимание, что переменная a - локальная переменная функции и не связана с переменной a во всём коде, если таковая есть.

А когда мы вызовем эту функцию, то мы можем передать в неё список:

spisok = my_function([2, 5, 4, 1])

Или:

numbers = [2, 5, 4, 1]
spisok = my_function(numbers)

После этого в переменной spisok будет отсортированный список чисел, который мы передали в функцию. То есть функция приняла список, обозначила его как переменная a в теле самой функции, совершила некие действия и вернула нам список. Надеюсь, что мой ответ помог разобраться в вашем вопросе. Советую почитать больше про функции в Python здесь.

→ Ссылка