Привет! До сих пор мы писали код, который выполнялся последовательно — строка за строкой. Но в реальных программах код нужно организовывать иначе. Повторяющиеся действия лучше выносить в отдельные блоки — функции.
В этой статье мы разберём:
- Что такое функция
- Зачем нужны функции
- Синтаксис создания и вызова функций
- Параметры и аргументы
- Возврат значения с помощью
return
- Что нужно знать перед началом
- Основная часть
- Зачем нужны функции
- Синтаксис создания функции
- Простейшая функция
- Функция с параметрами
- Функция с возвратом значения
- Функция с несколькими параметрами
- Порядок аргументов важен
- Именованные аргументы
- Функция как черновик (без return)
- Задачи для закрепления
- Нюансы и подводные камни
- Ошибка: Забыл вызвать функцию
- Ошибка: Неправильное количество аргументов
- Ошибка: Использование переменной вне функции
- Частые ошибки и как их избежать
- Ошибка 1: Забыл def
- Ошибка 2: Забыл return для возврата значения
- Ошибка 3: Неправильное количество аргументов
- Ошибка 4: Создание функции с тем же именем
- Шпаргалка
- Заключение / Выводы
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание переменных и условных операторов
Совет: Функции — одна из самых важных тем в программировании. Удели этой статье особое внимание.
Основная часть
Зачем нужны функции
Представь, что тебе нужно вычислить площадь круга в разных частях программы. Без функций пришлось бы писать формулу каждый раз:
# Без функций
r1 = 5
area1 = 3.14 * r1 ** 2
r2 = 10
area2 = 3.14 * r2 ** 2
r3 = 7
area3 = 3.14 * r3 ** 2С функциями код становится чище:
# С функциями
def circle_area(radius):
return 3.14 * radius ** 2
area1 = circle_area(5)
area2 = circle_area(10)
area3 = circle_area(7)Преимущества функций:
- Повторное использование — написал один раз, используй много раз
- Чистый код — программа разбита на логические блоки
- Удобство отладки — ошибку проще найти в маленькой функции
- Лёгкость изменений — меняешь в одном месте, меняется везде
Совет: Принцип DRY (Don’t Repeat Yourself) — не повторяйся. Это один из главных принципов хорошего кода.
Синтаксис создания функции
def имя_функции(параметры):
# тело функции
return результатdef— ключевое слово для объявления функцииимя_функции— название (по правилам именования переменных)параметры— данные, которые функция принимаетreturn— возвращает результат из функции (если не указывать, вернётсяNone)
Простейшая функция
def say_hello():
print("Привет, мир!")
say_hello() # Вызов функцииРезультат: "Привет, мир!"
Функция с параметрами
def greet(name):
print(f"Привет, {name}!")
greet("Анна") # Привет, Анна!
greet("Иван") # Привет, Иван!Важно: Параметры — это переменные в определении функции. Аргументы — конкретные значения, которые мы передаём при вызове.
Функция с возвратом значения
def add(a, b):
return a + b
result = add(5, 3)
print(result) # 8Совет: Функция без
returnвозвращаетNone. Если нужно вернуть результат — используйreturn.
Функция с несколькими параметрами
def rectangle_area(length, width):
return length * width
area = rectangle_area(10, 20)
print(area) # 200Порядок аргументов важен
def divide(a, b):
return a / b
print(divide(10, 2)) # 5.0
print(divide(2, 10)) # 0.2Именованные аргументы
def info(name, age, city):
print(f"Имя: {name}, Возраст: {age}, Город: {city}")
info(name="Анна", age=25, city="Москва")
info(city="Москва", name="Анна", age=25) # Тот же результатСовет: Именованные аргументы делают код самодокументированным.
Функция как черновик (без return)
def show_info(name, age):
print(f"Имя: {name}")
print(f"Возраст: {age}")
result = show_info("Анна", 25) # Выведет информацию
print(result) # NoneЗадачи для закрепления
Задача 1. Напиши функцию square(x), которая возвращает квадрат числа.
Задача 2. Напиши функцию is_even(x), которая возвращает True, если число чётное.
Задача 3. Напиши функцию greeting(name, language), которая выводит приветствие на русском или английском.
Задача 4. Напиши функцию max_of_two(a, b), которая возвращает большее из двух чисел.
Задача 5. Напиши функцию circle_info(radius), которая выводит площадь и длину окружности.
Ответы:
Задача 1.
def square(x):
return x ** 2Задача 2.
def is_even(x):
return x % 2 == 0Задача 3.
def greeting(name, language):
if language == "ru":
print(f"Привет, {name}!")
elif language == "en":
print(f"Hello, {name}!")
else:
print(f"Привет, {name}!")Задача 4.
def max_of_two(a, b):
if a > b:
return a
else:
return bЗадача 5.
def circle_info(radius):
pi = 3.14159
area = pi * radius ** 2
circumference = 2 * pi * radius
print(f"Площадь: {area:.2f}")
print(f"Длина окружности: {circumference:.2f}")Нюансы и подводные камни
Ошибка: Забыл вызвать функцию
def say_hello():
print("Привет!")
say_hello # Ничего не произойдёт
say_hello() # ПравильноОшибка: Неправильное количество аргументов
def add(a, b):
return a + b
add(5) # TypeError: missing 1 required positional argument
add(5, 3, 4) # TypeError: takes 2 positional arguments but 3 were givenОшибка: Использование переменной вне функции
def func():
x = 10
print(x) # NameError: name 'x' is not definedЧастые ошибки и как их избежать
Ошибка 1: Забыл def
Всегда используй def для объявления функции.
Ошибка 2: Забыл return для возврата значения
Если функция должна возвращать результат — используй return.
Ошибка 3: Неправильное количество аргументов
Проверяй, что количество аргументов совпадает с параметрами.
Ошибка 4: Создание функции с тем же именем
Используй уникальные имена для функций.
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Объявить функцию | def my_function(): |
| Вызвать функцию | my_function() |
| Принять параметр | def func(param): |
| Вернуть значение | return value |
| Вернуть несколько значений | return a, b |
| Функция без return | Возвращает None |
Заключение / Выводы
Сегодня мы узнали:
- Функции — блоки кода, которые можно переиспользовать
- Синтаксис:
def, параметры,return - Вызов функции








