Привет! В прошлой статье мы познакомились с функциями и узнали, зачем они нужны. Теперь пришло время разобрать синтаксис их создания и вызова.
В этой статье мы подробно разберём:
- Ключевое слово
def - Правила именования функций
- Параметры и аргументы
- Оператор
return - Как вызывать функции
- Разницу между параметрами и аргументами
- Что нужно знать перед началом
- Основная часть
- 2.1. Синтаксис создания функции
- Создание функции
- Правила именования функций
- Вызов функции
- Параметры vs Аргументы
- Функции с return
- Функции без return
- Несколько return
- Вызов с разными аргументами
- 3. Задачи для закрепления
- Нюансы и подводные камни
- Порядок создания функций
- Одни скобки vs двойные скобки
- Имена переменных внутри функции
- Частые ошибки и как их избежать
- Ошибка 1: Забыл двоеточие
- Ошибка 2: Забыл return для возврата значения
- Ошибка 3: Неправильный порядок аргументов
- Ошибка 4: Путаница между параметрами и аргументами
- Шпаргалка
- Заключение / Выводы
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание функций (статья 1 в этом подменю)
Совет: Синтаксис функций нужно запомнить раз и навсегда. Это основа, на которой строится весь код.
Основная часть
2.1. Синтаксис создания функции
def имя_функции(параметры):
# тело функции
# код, который будет выполнен при вызове
return результатОбязательные элементы:
| Элемент | Что делает |
|---|---|
def | Ключевое слово (сокращение от define — определить) |
имя_функции | Имя, по которому будем вызывать функцию |
(параметры) | Переменные, которые принимает функция (могут отсутствовать) |
: | Двоеточие после объявления |
| Отступ | 4 пробела для тела функции |
return | Возвращает результат (может отсутствовать) |
Создание функции
def say_hello():
print("Привет, мир!")
[/code]
def greet(name):
print(f"Привет, {name}!")
def add(a, b):
return a + b
def is_even(n):
return n % 2 == 0Правила именования функций
| Правило | Пример |
|---|---|
Только буквы, цифры и _ | my_function |
| Не начинается с цифры | function_1 |
| Не использовать ключевые слова | def нельзя как имя |
| Осмысленное название | calculate_sum |
snake_case | get_user_data |
Хорошие имена: get_age, calculate_area, is_empty, print_info
Плохие имена: func, f, x, do_stuff
Совет: Имя функции должно описывать, что она делает. Глаголы в начале — хорошая практика.
Вызов функции
def greet(name):
print(f"Привет, {name}!")
greet("Анна") # Привет, Анна!
greet("Иван") # Привет, Иван!Важно: Не забывай ставить круглые скобки
()при вызове.
greet # Ничего не произойдёт (это просто ссылка на функцию)
greet("Анна") # Правильно — вызов функцииПараметры vs Аргументы
| Термин | Что это | Пример |
|---|---|---|
| Параметр | Переменная в определении функции | def greet(name): |
| Аргумент | Конкретное значение при вызове | greet("Анна") |
Совет: Эти термины часто путают, но разница простая: параметры — это как «места», аргументы — это «значения» для этих мест.
Функции с return
def square(x):
return x ** 2
result = square(5)
print(result) # 25
[/code]
def rectangle_area(length, width):
return length * width
area = rectangle_area(10, 20)
print(area) # 200Функции без return
Если нет return, функция возвращает None.
def display_info(name, age):
print(f"Имя: {name}")
print(f"Возраст: {age}")
result = display_info("Анна", 25)
print(result) # NoneНесколько return
Функция может иметь несколько return в разных ветках.
def check_age(age):
if age >= 18:
return "Доступ разрешён"
else:
return "Доступ запрещён"Вызов с разными аргументами
def greet(name, age):
print(f"Привет, {name}! Тебе {age} лет.")
greet("Анна", 25) # Позиционные аргументы
greet(age=25, name="Анна") # Именованные аргументы3. Задачи для закрепления
Задача 1. Напиши функцию cube(x), которая возвращает куб числа.
Задача 2. Напиши функцию is_positive(x), которая возвращает True, если число положительное.
Задача 3. Напиши функцию max_of_three(a, b, c), которая возвращает наибольшее из трёх чисел.
Задача 4. Напиши функцию rectangle_perimeter(length, width), которая возвращает периметр прямоугольника.
Задача 5. Напиши функцию is_leap_year(year), которая возвращает True, если год високосный.
Ответы:
Задача 1.
def cube(x):
return x ** 3Задача 2.
def is_positive(x):
return x > 0Задача 3.
def max_of_three(a, b, c):
if a >= b and a >= c:
return a
elif b >= a and b >= c:
return b
else:
return cЗадача 4.
def rectangle_perimeter(length, width):
return 2 * (length + width)Задача 5.
def is_leap_year(year):
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)Нюансы и подводные камни
Порядок создания функций
Функцию нужно определить до её вызова.
# Правильно
def hello():
print("Привет")
hello()
# Неправильно
hello() # Ошибка! Функция ещё не определена
def hello():
print("Привет")Одни скобки vs двойные скобки
# Ошибка! Функция определена с двумя параметрами
def add(a, b):
return a + b
add(5) # Ошибка! Нужно два аргумента
add(5, 3, 1) # Ошибка! Три аргумента
add(5, 3) # ПравильноИмена переменных внутри функции
def func():
x = 10
print(x)
func() # 10
print(x) # NameError — x существует только внутри функцииЧастые ошибки и как их избежать
Ошибка 1: Забыл двоеточие
def my_function() # Ошибка!
print("Hello")Ошибка 2: Забыл return для возврата значения
def add(a, b):
a + b # Нет return → вернёт None
result = add(5, 3)
print(result) # NoneОшибка 3: Неправильный порядок аргументов
def divide(a, b):
return a / b
print(divide(2, 10)) # 0.2, а не 5Ошибка 4: Путаница между параметрами и аргументами
Запомни: параметры — в определении, аргументы — при вызове.
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Создать функцию | def func(): |
| Создать функцию с параметром | def func(param): |
| Создать функцию с несколькими параметрами | def func(a, b): |
| Вернуть значение | return value |
| Вызвать функцию | func() |
| Вызвать функцию с аргументами | func(1, 2) |
| Именованные аргументы | func(a=1, b=2) |
Заключение / Выводы
Сегодня мы узнали:
- Синтаксис создания функции:
def - Правила именования функций
- Как вызывать функции
- Разницу между параметрами и аргументами
- Оператор
return








