Методический материал
Функции в Python (краткий конспект)
- Понятие функции
Функция — это именованный блок кода, который выполняет определённую задачу и может использоваться многократно.
Функции позволяют:
- избегать повторения кода;
- делать программу структурированной;
- упрощать сопровождение и тестирование.
Пример проблемы без функций:
print("Привет, Иван")
print("Привет, Мария")
print("Привет, Алексей")
С функцией:
def greet(name):
print(f"Привет, {name}")
greet("Иван")
greet("Мария")
greet("Алексей")
⸻
- Объявление функции
Функция создаётся с помощью ключевого слова def.
Синтаксис
def имяфункции(параметры):
телофункции
Пример:
def hello():
print("Привет, мир")
Вызов функции:
hello()
Результат:
Привет, мир
⸻
- Параметры и аргументы
Параметры
Переменные, указанные при создании функции.
Аргументы
Значения, передаваемые в функцию.
Пример:
def square(number):
result = number ** 2
print(result)
square(5)
Результат:
25
Здесь:
- number — параметр;
- 5 — аргумент.
⸻
- Возврат значения (return)
Оператор return возвращает результат работы функции.
Пример:
def add(a, b):
return a + b
result = add(3, 4)
print(result)
Результат:
7
Без return функция возвращает None.
Пример:
def test():
print("Тест")
x = test()
print(x)
Результат:
Тест
None
⸻
- Значения параметров по умолчанию
Можно задать стандартное значение параметра.
Пример:
def greet(name="Гость"):
print(f"Привет, {name}")
greet()
greet("Анна")
Результат:
Привет, Гость
Привет, Анна
⸻
- Именованные аргументы
Аргументы можно передавать по имени.
Пример:
def person(name, age):
print(name, age)
person(age=20, name="Иван")
Результат:
Иван 20
⸻
- Локальные и глобальные переменные
Локальная переменная
Доступна только внутри функции.
def example():
x = 10
print(x)
example()
Глобальная переменная
Доступна во всей программе.
x = 100
def show():
print(x)
show()
⸻
- Область видимости (Scope)
Переменная, созданная внутри функции, недоступна снаружи.
Ошибка:
def test():
number = 10
print(number)
Результат:
NameError
⸻
- Несколько значений из функции
Функция может вернуть несколько значений.
def calc(a, b):
return a + b, a * b
sum_result, mult_result = calc(3, 5)
print(sum_result)
print(mult_result)
Результат:
8
15
⸻
- Неограниченное количество аргументов
*args
Позволяет передавать любое количество позиционных аргументов.
def total(*numbers):
print(sum(numbers))
total(1, 2, 3, 4)
Результат:
10
**kwargs
Позволяет передавать именованные аргументы.
def user_info(**data):
print(data)
user_info(name="Иван", age=25)
Результат:
{'name': 'Иван', 'age': 25}
⸻
- Рекурсивные функции
Рекурсия — вызов функцией самой себя.
Пример: факториал числа.
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5))
Результат:
120
⸻
- Lambda-функции
Краткая форма записи функции.
Обычная функция:
def square(x):
return x ** 2
Lambda-аналог:
square = lambda x: x ** 2
print(square(4))
Результат:
16
⸻
- Полезные встроенные функции
map()
Применяет функцию ко всем элементам.
numbers = [1, 2, 3]
result = list(map(lambda x: x * 2, numbers))
print(result)
Результат:
[2, 4, 6]
filter()
Фильтрует элементы.
numbers = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x % 2 == 0, numbers))
print(result)
Результат:
[2, 4]
⸻
-
Типичные ошибки
-
Забыли вызвать функцию
Ошибка:
def hello():
print("Hi")
hello
Правильно:
hello()
- Отсутствует return
Ошибка:
def add(a, b):
a + b
Правильно:
def add(a, b):
return a + b
- Неправильное число аргументов
Ошибка:
def show(name):
print(name)
show()
⸻
- Практические задания
Задание 1
Написать функцию вычисления площади прямоугольника.
Пример:
rectangle_area(5, 10)
Результат:
50
Задание 2
Написать функцию проверки чётности числа.
Пример:
is_even(8)
Результат:
True
Задание 3
Создать функцию вычисления максимального числа из трёх.
⸻
-
Контрольные вопросы
-
Что такое функция?
-
Для чего используется def?
-
Чем отличается параметр от аргумента?
-
Для чего нужен return?
-
Что делают *args и **kwargs?
-
Что такое рекурсия?
-
Для чего применяются lambda-функции?
⸻
- Итоги
Функции — базовый механизм структурирования программ в Python.
Ключевые элементы:
- def — создание функции;
- параметры и аргументы;
- return — возврат результата;
- область видимости переменных;
- *args, **kwargs;
- рекурсия;
- lambda-функции.
Правильное использование функций уменьшает дублирование кода и повышает читаемость программы.