Что такое функция в Python: зачем нужны и как работают

Что такое функция в Python: зачем нужны и как работают Функции

Привет! До сих пор мы писали код, который выполнялся последовательно — строка за строкой. Но в реальных программах код нужно организовывать иначе. Повторяющиеся действия лучше выносить в отдельные блоки — функции.

В этой статье мы разберём:

  • Что такое функция
  • Зачем нужны функции
  • Синтаксис создания и вызова функций
  • Параметры и аргументы
  • Возврат значения с помощью return

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный 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
  • Вызов функции

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×