JavaRush /Курсы /Модуль 1: Python Core /Возвращаем значение

Возвращаем значение

Модуль 1: Python Core
4 уровень, 7 лекция
Открыта

8.1 Оператор return

В Python операторreturnиграет центральную роль в функциях, поскольку с его помощью функция может вернуть своё значение. Понимание его использования важно для эффективной разработки программного обеспечения.

Оператор return завершает выполнение функции и «возвращает» результат вызывающему коду. Если функция должна выдать результат, который будет использоваться дальше, используется return.

Возвращение значения

Функции могут возвращать любой тип данных, включая числа, строки, объекты, даже другие функции и None. Пример:


def sum(a, b):
    return a + b
        
result = sum(5, 3)
print(result)  # Выведет 8

Результат сложения a + b может быть присвоен переменной result.

Возвращение множественных значений

Python позволяет возвращать несколько значений из функции с помощью кортежей:


def get_user():
    name = "Иван"
    age = 25
    return name, age
        
user_name, user_age = get_user()
print(user_name, user_age)  # Выведет Иван 25

Использование return для завершения функции

Оператор return также может быть использован для немедленного завершения функции, включая циклы или условные блоки внутри функции:


def check_password(pswd):
    if len(pswd) < 8:
        return "Слишком короткий пароль"
    return "Пароль принят"

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

Если return используется без значения или вообще опущен, функция возвращает None:


def print_message(text):
    print(text)
    return
        
result = print_message("Привет")
print(result)  # Выведет None

Оператор return является мощным инструментом в Python, обеспечивающим гибкость в управлении потоком выполнения программы. Он позволяет функциям не только возвращать значения для дальнейшего использования, но и контролировать логику выполнения, что делает код чище и проще для понимания.

8.2 Оператор pass

В Python есть специальный оператор — pass, который ничего не делает. Оператор pass используется как заполнитель в блоках кода, где синтаксически требуется содержание, но функционально оно ещё не определено (должен быть какой-то код, но пока не придумали какой).

Это особенно полезно в случаях, когда вы работаете над крупным проектом и хотите структурировать программу, не давая ей выполнять какие-либо операции. Ниже приведены несколько примеров использования pass.

В определениях функций:


def my_function():
    pass

Здесь pass используется для определения функции, которая пока не имеет реализации.

В циклах и условиях:


for item in my_list:
    pass

Если необходимо создать цикл, но не нужно выполнять никаких действий в его теле.

В классах:

Определение класса без методов и атрибутов, чтобы зарезервировать название и структуру класса для будущего использования.

Оператор pass часто используется в процессе разработки и тестирования, когда структура программы уже чёткая, но детали реализации отдельных компонентов ещё не определены. Это позволяет программисту организовать код и постепенно добавлять функциональность без нарушения работы приложения в целом.

8.3 Возвращение функции

В Python возможность функции возвращать другую функцию является мощным инструментом, благодаря поддержке замыканий* и функций первого класса. Эта особенность языка позволяет разрабатывать гибкие и выразительные программы, используя такие концепции, как декораторы* и фабрики функций*.

В Python функции являются объектами, что означает, что они могут быть присвоены переменным, переданы другим функциям в качестве аргументов или возвращены из них как результаты. Эта возможность делает функции исключительно мощными инструментами для создания модульного и легко тестируемого кода.

Давайте ради примера создадим функцию, которая будет генерировать нам функции для возведения в степень. Одна функция будет возводить в квадрат, другая в куб и т.п. Вот как может выглядеть такой код:


def power(exponent):
    def inner(base):
        return base ** exponent
    return inner
        
square = power(2)
print(square(3))  # Выводит 9
        
cube = power(3)
print(cube(3))  # Выводит 27

Обратите внимание — функция power не вызывает функцию inner. Вместо этого внутри функции power объявлена функция inner с параметром base. Но функция inner не просто объявлена, она использует параметр exponent у себя внутри.

2
Задача
Модуль 1: Python Core, 4 уровень, 7 лекция
Недоступна
Максималист
Максималист
2
Задача
Модуль 1: Python Core, 4 уровень, 7 лекция
Недоступна
Вычисление факториала
Вычисление факториала
Комментарии (34)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Станислав Березняков Уровень 8 Student
9 сентября 2026
def factorial(n): if n==0: return 1 else: for i in range(1, n): n =n * i return n print(factorial(5))
Олег Сычев Уровень 4
11 мая 2026
Решил следующим образом: def factorial(n): if n == 0: return 1 return n * factorial(n-1)
Pan Game Уровень 64
10 мая 2026
Факториал же база для объяснения рекурсии, разве нет?)
10 марта 2026
5 раз перечитал не понимаю Как работает последний пример кода square = power(2) square(3) 3 становиться аргументом для параметра base ? Как это работает def power(exponent): def inner(base): return base ** exponent return inner square = power(2) print(square(3)) # Выводит 9 cube = power(3) print(cube(3)) # Выводит 27
EvgenyXIV Уровень 31
9 марта 2026
Пишем факториал "ручками" без библио и рекурсий, проверяем число и его тип, так как в задании нет никаких указаний про число при вводе с консоли (только есть про целое число, которое должна принимать функция)... учитываем ограничения по размеру целого числа в памяти def factorial(n): digits = "0123456789" for symbol in n: if symbol not in digits or n[0] == digits[0] and len(n) > 1: return # Возвращаем None: если <0; если старший разряд 0; если не число n = int(n) if n == 0: return 1 # Возвращаем 1 elif n <= 1558: result = 1 for i in range(1, n + 1): result *= i return result # Возвращаем !n else: return "n слишком велико..." n = input() print(factorial(n))
Anonymous #3447003 Уровень 17
26 июля 2026
еще бы движение комет в учебной задаче учесть
Evе Eve Уровень 13
11 декабря 2025
import math def factorial(n): if n == 0: return 1 elif n > 0: return math.factorial(n) n = 43 print(factorial(n)) - делал так
Евгений Маркин Уровень 13
22 декабря 2025
Попробуй реализовать через рекурсию - это интереснее
EvgenyXIV Уровень 31
9 марта 2026
рано ещё через рекурсию - не было этой темы, надо учиться писать в ограниченном пространстве инструментов, а то миддл задачки порешаешь, а на джуниор об...ся
Dmitriy Уровень 24
1 ноября 2025
Не совсем понял как передается значение в параметр base через переменную
Анатолий Уровень 63
23 января 2026
Посредсвом вызова внутренней функции с аргументом 3.
Dmitriy Уровень 24
29 января 2026
Тема замыканий раскрыта на 13 уровне в 3 лекции. 1. Первая функция возвращает объект второй функции с переданным ему аргументом; 2. Объект присваивается переменной; 3. Переменная, как объект второй функции, вызывается со своим аргументом и возвращает результат выражения.
AlterAyrol Уровень 25
18 октября 2025
я наверное убью желание думать самому и придумывать велосипед, но math.factorial содержит всё необходимое для поиска факториала) Поэтому решение: def factorial(n): return math.factorial(n) спокойно зашло. P.S. для себя я решил рекурсией, но не мог не проверить, пройдёт такое решение проверку или нет:)
Hrant Hayrapetyan Уровень 13
15 октября 2025

    def factorial(n):
        return None if n < 0 else (1 if n < 2 else n * factorial(n-1))
P L Уровень 8
9 октября 2025

def factorial(n):
    return 1 if n == 0 else n * factorial(n - 1)
    
print(factorial(5))