Функции: определение, вызов и область видимости

Что такое функции и зачем они нужны? 🧩

Функции в Python — это блоки кода, которые выполняют определенную задачу и могут быть вызваны многократно. Они помогают:

  • Избегать дублирования кода
  • Структурировать программу на логические части
  • Упрощать чтение и поддержку кода

Представьте, что функция — это мини-программа внутри вашей программы!

# Пример простой функции
def greet():
    print("Привет, мир!")

Как определять функции? ✏️

Функция определяется с помощью ключевого слова def, за которым следует:

  1. Имя функции (по PEP 8 — в snake_case)
  2. Круглые скобки ()
  3. Двоеточие :

Тело функции пишется с отступом в 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 предлагает гибкие способы работы с параметрами:

  1. Аргументы по умолчанию:
def greet(name="Гость"):
    print(f"Привет, {name}!")
  1. Именованные аргументы:
greet(name="Анна")  # Четко указываем параметр
  1. Произвольное число аргументов (*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

Советы от Данилы Бежина 💡

  1. Делите сложные функции на более простые
  2. Используйте осмысленные имена функций и параметров
  3. Комментируйте назначение функции, если оно неочевидно
  4. Следите за областью видимости переменных

📹 Подробнее о функциях смотрите на YouTube-канале Данилы Бежина

Скрыть рекламу навсегда

🌱 Индвидидулаьные занятия

Индивидуальные онлайн-занятия по программированию для детей и подростков

Личный подход, без воды, с фокусом на понимание и реальные проекты.

🚀 Записаться на занятие