Return: возврат значения из функции

Return: возврат значения из функции Функции

Привет! Мы уже научились создавать функции, передавать им аргументы. Но настоящая сила функций — в том, что они могут возвращать результат. Именно для этого существует оператор return.

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

  • Что такое оператор return
  • Как вернуть значение из функции
  • Как вернуть несколько значений
  • Что происходит без return
  • Когда использовать return

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

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

  • Установленный Python
  • Базовое понимание функций (статьи 1–3 в этом подменю)

Совет: return — это то, что делает функции полезными. Функция без return полезна только для вывода, а с return — для вычислений.

Основная часть

Что делает return

return — это оператор, который:

  1. Возвращает значение из функции
  2. Прекращает выполнение функции (дальнейший код не выполняется)
def add(a, b):
    return a + b           # возвращает сумму
    print("Это не будет выполнено")

result = add(5, 3)
print(result)   # 8

Возврат одного значения

def square(x):
    return x ** 2

def is_even(n):
    return n % 2 == 0

def double(x):
    return x * 2

print(square(5))   # 25
print(is_even(6))  # True
print(double(10))  # 20

Возврат нескольких значений

В Python можно вернуть несколько значений — они упаковываются в кортеж.

def get_user_info():
    name = "Анна"
    age = 25
    city = "Москва"
    return name, age, city

info = get_user_info()
print(info)          # ('Анна', 25, 'Москва')

name, age, city = get_user_info()   # Распаковка
print(name, age, city)   # Анна 25 Москва

Совет: Возврат нескольких значений — одна из самых удобных фишек Python.

Функции без return

Если в функции нет return, она возвращает None.

def display_message(message):
    print(message)

result = display_message("Привет!")
print(result)   # None

Совет: Используй print() для вывода на экран, return — для получения результата.

return в условиях

def check_age(age):
    if age >= 18:
        return "Доступ разрешён"
    else:
        return "Доступ запрещён"

print(check_age(20))   # Доступ разрешён
print(check_age(16))   # Доступ запрещён

return как выход из функции

def find_first_even(numbers):
    for num in numbers:
        if num % 2 == 0:
            return num    # Выход из функции при нахождении
    return None           # Если чётных чисел нет

print(find_first_even([1, 3, 5, 6, 7]))   # 6
print(find_first_even([1, 3, 5]))         # None

Совет: return в цикле часто используется для досрочного выхода.

return vs print()

returnprint()
Возвращает значение из функцииВыводит значение на экран
Можно использовать в вычисленияхТолько для отображения
Не показывается на экранеПоказывается на экране
def add_return(a, b):
    return a + b

def add_print(a, b):
    print(a + b)

result = add_return(5, 3)   # result = 8 (можно использовать)
add_print(5, 3)             # Вывод на экран, но result = None

Примеры из реальной жизни

Пример 1. Калькулятор ИМТ:

def calculate_bmi(weight, height):
    return weight / (height ** 2)

bmi = calculate_bmi(70, 1.75)
print(f"Ваш ИМТ: {bmi:.2f}")   # 22.86

Пример 2. Конвертер валют:

def usd_to_rub(usd, rate=90.0):
    return usd * rate

def rub_to_usd(rub, rate=90.0):
    return rub / rate

print(usd_to_rub(100))   # 9000.0
print(rub_to_usd(9000))  # 100.0

Пример 3. Форматирование данных:

def format_user(name, age, city):
    return f"Пользователь {name}, {age} лет, из {city}"

user_info = format_user("Анна", 25, "Москва")
print(user_info)   # Пользователь Анна, 25 лет, из Москва

Задачи для закрепления

Задача 1. Напиши функцию circle_area(radius), которая возвращает площадь круга.

Задача 2. Напиши функцию is_palindrome(text), которая возвращает True, если строка — палиндром.

Задача 3. Напиши функцию get_min_max(numbers), которая возвращает минимальное и максимальное значение из списка.

Задача 4. Напиши функцию calculate_discount(price, discount_percent), которая возвращает цену со скидкой.

Задача 5. Напиши функцию split_name(full_name), которая возвращает имя и фамилию отдельно.

Ответы:

Задача 1.

import math
def circle_area(radius):
    return math.pi * radius ** 2

Задача 2.

def is_palindrome(text):
    text = text.lower().replace(" ", "")
    return text == text[::-1]

Задача 3.

def get_min_max(numbers):
    return min(numbers), max(numbers)

Задача 4.

def calculate_discount(price, discount_percent):
    return price * (1 - discount_percent / 100)

Задача 5.

def split_name(full_name):
    parts = full_name.split()
    if len(parts) == 2:
        return parts[0], parts[1]
    else:
        return full_name, ""

Нюансы и подводные камни

Код после return не выполняется

def func():
    return 42
    print("Это не будет выполнено")

print(func())   # 42

return на разных уровнях вложенности

def find_element(items, target):
    for item in items:
        if item == target:
            return True    # Выход из функции
    return False           # Если не найдено

return без значения

def func():
    return    # Вернёт None

print(func())   # None

Частые ошибки и как их избежать

Ошибка 1: Забыл return для возврата значения

def add(a, b):
    a + b          # Нет return!

result = add(5, 3)
print(result)   # None

Ошибка 2: Путаница между print() и return

def add(a, b):
    print(a + b)   # Только вывод, нельзя использовать в вычислениях

result = add(5, 3)   # result = None
print(result + 5)    # TypeError!

Ошибка 3: return в одном условии, но не в другом

def check_number(x):
    if x > 0:
        return "Положительное"
    # Если x <= 0, return не сработает, вернётся None

Шпаргалка

Что нужноКак пишется
Вернуть значениеreturn value
Вернуть несколько значенийreturn a, b
Выйти из функцииreturn (без значения)
Использовать return в условияхif ...: return
Получить результатresult = func()

Заключение / Выводы

Сегодня мы узнали:

  • return — возвращает значение из функции
  • Можно вернуть одно или несколько значений
  • Код после return не выполняется
  • return vs print()

КВИЗ

Что дальше?

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