Функции: определение, вызов и область видимости
Что такое функции и зачем они нужны? 🧩
Функции в Python — это блоки кода, которые выполняют определенную задачу и могут быть вызваны многократно. Они помогают:
- Избегать дублирования кода
- Структурировать программу на логические части
- Упрощать чтение и поддержку кода
Представьте, что функция — это мини-программа внутри вашей программы!
# Пример простой функции
def greet():
print("Привет, мир!")
Как определять функции? ✏️
Функция определяется с помощью ключевого слова def, за которым следует:
- Имя функции (по PEP 8 — в
snake_case) - Круглые скобки
() - Двоеточие
:
Тело функции пишется с отступом в 4 пробела.
def calculate_sum(a, b): # a и b — параметры функции
result = a + b
return result # Возвращаем значение
Вызов функций: давайте работать! 📞
Определив функцию, вы можете вызывать её столько раз, сколько нужно:
# Вызов функции с аргументами 5 и 3
sum_result = calculate_sum(5, 3)
print(sum_result) # Выведет 8
🔍 Важно: - Аргументы передаются в том порядке, в котором объявлены параметры - Количество аргументов должно совпадать с количеством параметров (если не используются аргументы по умолчанию)
Возврат значений vs вывод на экран 🔄
Не путайте return и print()!
returnпередает значение наружу функцииprint()просто выводит текст в консоль
def wrong_example():
print("Это не возвращаемое значение!")
x = wrong_example() # x будет равно None!
Область видимости: кто что видит? 👀
Переменные бывают: - Глобальные — видны везде в коде - Локальные — существуют только внутри функции
global_var = "Я глобальная"
def show_vars():
local_var = "Я локальная"
print(global_var) # Можно!
print(local_var) # Можно!
show_vars()
print(local_var) # Ошибка! Переменная не определена
Параметры и аргументы 🎯
Параметры — это переменные в определении функции.
Аргументы — конкретные значения, которые вы передаете.
# Параметры: width, height
def draw_rectangle(width, height):
for i in range(height):
print('*' * width)
# Аргументы: 10 и 5
draw_rectangle(10, 5)
Возможности параметров 🌟
Python предлагает гибкие способы работы с параметрами:
- Аргументы по умолчанию:
def greet(name="Гость"):
print(f"Привет, {name}!")
- Именованные аргументы:
greet(name="Анна") # Четко указываем параметр
- Произвольное число аргументов (
*argsи**kwargs):
def sum_all(*numbers):
return sum(numbers)
Практический пример: калькулятор площади 📐
Давайте создадим полезную функцию:
def calculate_area(shape, *dimensions):
if shape == "rectangle":
return dimensions[0] * dimensions[1]
elif shape == "circle":
return 3.14 * dimensions[0] ** 2
else:
return "Неизвестная фигура"
# Использование
print(calculate_area("rectangle", 4, 5)) # 20
print(calculate_area("circle", 3)) # ~28.26
Советы от Данилы Бежина 💡
- Делите сложные функции на более простые
- Используйте осмысленные имена функций и параметров
- Комментируйте назначение функции, если оно неочевидно
- Следите за областью видимости переменных
📹 Подробнее о функциях смотрите на YouTube-канале Данилы Бежина