
Python
Параметры функций python (я чайник)
На скрине парень пишет простейший код. Я только начинаю учиться. Так вот он пишет в параметрах функции sum(a,b) хотя переменные у нас x и y. Мне непонятно почему он пишет так. Пробовал написать в параметрах реальные названия переменных, оно не работает. Разжуйте пжлст чайнику

x и y - это аргументы
a и b - это параметры
не важно, как называются x и y, это могут быть любые буквы/слова, важно то, что внутри функции мы будем работать только с a и b
если еще проще:
def sum(a, b):
____return(a + b)
x = 2
y = 4
когда мы вызываем функцию sum(x, y), происходит вот что:
a = x = 2
b = y = 4
т.е. в конечном итоге мы приходим к числам и не важно,
сколько там промежуточных переменных и как они называются
п.с. можно явно указать, что и чему присваивается, для лучшего понимания:
sum(a=x, b=y)
a и b - это параметры
не важно, как называются x и y, это могут быть любые буквы/слова, важно то, что внутри функции мы будем работать только с a и b
если еще проще:
def sum(a, b):
____return(a + b)
x = 2
y = 4
когда мы вызываем функцию sum(x, y), происходит вот что:
a = x = 2
b = y = 4
т.е. в конечном итоге мы приходим к числам и не важно,
сколько там промежуточных переменных и как они называются
п.с. можно явно указать, что и чему присваивается, для лучшего понимания:
sum(a=x, b=y)
Купранов Валерий
Вот с -- sum(a=x, b=y) -- всё встало на свои места. Огромнейшее тебе спасибо! Получается можно в параметрах использовать любые буквы если прописать например s=x..... Для меня просто на начальном этапе так гораздо понятней
def sum(a,b): return a + b
print(sum(2,3))
Функция берет параметр 'a' и записывает в него аргумент 2, берет параметр 'b' и записывает в него аргумент 3. Складывает. Получает 5. Возвращает результат.
Теперь мысленно замените 2 и 3 на x и y
print(sum(2,3))
Функция берет параметр 'a' и записывает в него аргумент 2, берет параметр 'b' и записывает в него аргумент 3. Складывает. Получает 5. Возвращает результат.
Теперь мысленно замените 2 и 3 на x и y
Так, тут будет много текста. Во-первых, расскажу о типах переменных.
Глобальная - к переменной можно обратиться почти в любой часте кода, задается она вне функции
Локальная - такая переменная задается внутри функции и может использоваться также только внутри функции.
При передачи функции параметров как раз таки и создаются локальные переменные. В примере a и b - локальные, а x и y - это глобальные переменные.
Значениям локальных переменных a и b присваиваются значения x и y, соответственно. После этого выводится результат. После выполнения функции переменные a и b больше не существуют.
А что бы случилось, если бы внутри функции мы изменили переменную a? Например a+=1, а потом бы написали return a + b. Изменилась бы только переменная a, x остался бы прежним.
И последнее, "реальные названия переменных" - вот так делать не стоит. Что происходит в функции, когда мы в ней заводим локальную переменную с таким же именем как и у одной из глобальных? Все просто - питон игнорирует глобальную переменную. Проблема в том, что очень легко запутаться, поэтому имена локальных переменных в функциях НИКОГДА не должны совпадать с именами глобальных.
НО, вдруг это вопрос жизни и смерти и надо изменить глобальную переменную в функции. Тогда мы пишем global <переменная>. Питон понимает, что ты имеешь ввиду именно глобальную переменную, а не задаешь новую, и обращается к ней. Например:
x = 3
def f():
____global x
____x + 1
В результате x станет равным 4. Но и такой способ рекомендуется НЕ использовать, если возможно
Глобальная - к переменной можно обратиться почти в любой часте кода, задается она вне функции
Локальная - такая переменная задается внутри функции и может использоваться также только внутри функции.
При передачи функции параметров как раз таки и создаются локальные переменные. В примере a и b - локальные, а x и y - это глобальные переменные.
Значениям локальных переменных a и b присваиваются значения x и y, соответственно. После этого выводится результат. После выполнения функции переменные a и b больше не существуют.
А что бы случилось, если бы внутри функции мы изменили переменную a? Например a+=1, а потом бы написали return a + b. Изменилась бы только переменная a, x остался бы прежним.
И последнее, "реальные названия переменных" - вот так делать не стоит. Что происходит в функции, когда мы в ней заводим локальную переменную с таким же именем как и у одной из глобальных? Все просто - питон игнорирует глобальную переменную. Проблема в том, что очень легко запутаться, поэтому имена локальных переменных в функциях НИКОГДА не должны совпадать с именами глобальных.
НО, вдруг это вопрос жизни и смерти и надо изменить глобальную переменную в функции. Тогда мы пишем global <переменная>. Питон понимает, что ты имеешь ввиду именно глобальную переменную, а не задаешь новую, и обращается к ней. Например:
x = 3
def f():
____global x
____x + 1
В результате x станет равным 4. Но и такой способ рекомендуется НЕ использовать, если возможно
Купранов Валерий
Громадное спасибо за чёткий и развёрнутый ответ.
Похожие вопросы
- Что такое "параметры функций" в Пайтоне? Я никак не могу понять
- арументы (изменяемых объектов) функций в 1с и Python
- Python.Какой функцией можно вывести КОЛИЧЕСТВО четных элементов в массиве?
- Программирование на языке python, помогите советом. Вопрос от чайника.
- Функции в Python, как понять?
- Python не выводит результат функции
- Я не понимаю как сделать Эту функцию по Python! Не понятно!
- Окончил курсы на степике по Python что делать дальше?
- Python программирование. Помогите написать программу.
- Python. Использование стандартных методов работы со списками(для чайников)