Почему в аргументе функции выводит ошибку?
почему если я передаю в качестве аргумента сам список, то выдает ошибку, но если список приравнять к переменной, и передать ее, то ошибки не будет?
Ответы (1 шт):
Вы не совсем понимаете, как работает объявление функции. Когда вы объявляете функцию, в скобках вы указываете имя переменной, которая будет использоваться в функции. Пользователь будет передавать в эту функцию объект при её вызове, а объект будет присваиваться этой переменной в коде функции. То есть, к примеру:
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 здесь.
