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 лекция
Недоступна
Вычисление факториала
Вычисление факториала
Комментарии (22)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Evе Eve Уровень 8
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
Попробуй реализовать через рекурсию - это интереснее
Dmitry Tolstov Уровень 13
1 ноября 2025
Не совсем понял как передается значение в параметр base через переменную
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))
b1rdy Уровень 10
4 октября 2025

def factorial(n):
    if n != 0:
        result = 1
        for i in range(n, 0, -1):
            result *= i
        return result
    elif n <= 0:
        return 1

print(factorial(6))
как-то так
12 августа 2025
def factorial(n): total = 1 for i in range(n): total *= i + 1 return total print(factorial(10))
23 июля 2025
Вот моё решение: def factorial(n): if n == 0: return 1 else: result = 1 for i in range(1, n + 1): result *= i return result n = int(input("Введите целое число n: \n")) print(f"Результат вычисления факториала введённого числа {n}:\n {n}! = {factorial(n)}") вариант с рекурсией использует больше памяти при больших n, собственно из за самой рекурсии
Long_byte Уровень 55
8 июня 2025
когда внутрення функция использует параметры внешней функции он сохраняет эти параметры в атрибут closure типа кортеж а кортеж обарачивает значения параметров в обьект cell это называется замыкание?
bbirdy Уровень 13
6 мая 2025
возможно в силу своей глупости я не понимаю страстей в коментариях по поводу второй задачи, но я решил ее так

import math


def factorial(n):
    return math.factorial(n) if n > 0 else 1
    
print(factorial(10))
Peter Уровень 6
15 мая 2025
А что не понятного, решать надо было без встроенного метода. Создать factorial(), чтобы запустить .factorial(), гениально.