Определение функции
Функция в языке Python — это блок кода, который выполняет определённую задачу и может быть вызван многократно.
Формат объявления функции
`` def имя_функции(параметры): инструкции return [значение] ``
— переменные, которые передаются функции при её вызове.
— результат выполнения функции, указывается после ключевого слова return.
Примеры функций
Функция сложения двух чисел
`` def summa(a, b): return a + b ``
Вызов функции
`` print(summa(3, 5)) # вывод: 8 ``
Рекурсия
Рекурсивная функция вызывает саму себя до тех пор, пока не выполнится условие завершения рекурсии.
Пример факториала числа n
`` def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) ``
Локальные и глобальные переменные
Локальная переменная существует только внутри функции и недоступна вне неё. Глобальная переменная доступна во всей программе.
Пример использования локальной и глобальной переменных
``` x = 10 # глобальная переменная
def fun(): x = 20 # локальная переменная print(x) # выведет 20
fun() print(x) # выведет 10 ```
Передача аргументов
Аргументы могут передаваться по значению или по ссылке.
По значению
При передаче по значению изменяется копия объекта, а не сам объект. `` def change_value(x): x += 1 change_value(5) print(x) # останется 5 ``
По ссылке
При передаче по ссылке изменяются сами объекты. `` def change_list(lst): lst.append(10) lst = [1, 2, 3] change_list(lst) print(lst) # выведет [1, 2, 3, 10] ``
Пропуски для самопроверки
Блок текста
Объявленный код
Код, выполняющий конкретную задачу несколько раз
Как объявляется функция в Python?
def имя_функции(параметры):
function имя_функции(параметры):
procedure имя_функции(параметры):
Какой оператор используется для возврата значения из функции?
return
break
continue
Какие аргументы можно передавать функции?
Только числовые
Только строковые
Числовые, строковые, списки, словари и другие объекты
Что происходит при рекурсивном вызове функции?
Выполняется бесконечное количество раз
Вызывается сама функция снова и снова
Завершается немедленно
Внутри функции
Во всей программе
По какому принципу передается аргумент по ссылке?
Изменяется копия объекта
Изменяется сам объект
В каком случае изменение параметра внутри функции влияет на исходный параметр?
При передаче по значению
При передаче по ссылке