Иногда функция должна не печатать ответ, а передать его обратно в основную программу. Для этого нужен return.
def square(number): result = number * number return resultanswer = square(5)print(answer)
Смысл строк:
square(5) передаёт число 5 в параметр number.
Функция вычисляет 5 * 5.
return result возвращает значение 25 в место вызова.
Значение записывается в answer и затем печатается.
print и return — не одно и то же
print(...) показывает значение на экране. return ... возвращает значение из функции, чтобы основная программа могла сохранить его или использовать в новом вычислении.
Разобранный пример
Задача:
Написать функцию, которая получает длину и ширину прямоугольника и возвращает его площадь.
flowchart LR
A["Аргументы: 4 и 3"] --> B["rectangle_area(4, 3)"]
B --> C["Параметры length и width"]
C --> D["Вычисление 4 · 3"]
D --> E["return 12"]
E --> F["Основная программа получает 12"]
classDef result fill:#d3f9d8,stroke:#2b8a3e,color:#212529;
class E,F result;
Тренировка по шагам
Работай сверху вниз. Сначала запиши собственный ответ, затем нажми на свёрнутый блок «Правильный ответ» непосредственно под заданием. Исправление пиши ниже своей первой попытки, не стирая её.
Шаг 1. Параметр и аргументы
В программе назови параметр, два аргумента и результаты вызовов.
def double(number): return number * 2print(double(6))print(double(10))
Ответ ученика
Правильный ответ к шагу 1
Параметр — number, аргументы — 6 и 10, результаты — 12 и 20.
Шаг 2. Трассировка функции
Запиши значения после выполнения.
def add(a, b): result = a + b return resultx = add(2, 5)
Ответ ученика
Правильный ответ к шагу 2
В функцию передаются a=2 и b=5; затем result=7; после return переменная x получает значение 7.
Шаг 3. Результат внутри выражения
Что выведет программа и почему?
def multiply(a, b): return a * bprint(multiply(3, 4) + 1)
Ответ ученика
Правильный ответ к шагу 3
Функция вернёт 12, после чего основная программа прибавит 1. Вывод: 13.
Шаг 4. Исправь две ошибки
Исправь программу.
def cube(number)return number * number * numberprint(cube(3))
Ответ ученика
Правильный ответ к шагу 4
После заголовка функции нужно двоеточие, а перед return — отступ.
def cube(number): return number * number * numberprint(cube(3))
Программа выведет 27.
Шаг 5. Напиши функцию
Напиши функцию perimeter(a, b), которая возвращает периметр прямоугольника. Вызови её для сторон 5 и 2.
Ответ ученика
Правильный ответ к шагу 5
def perimeter(a, b): return 2 * (a + b)print(perimeter(5, 2))
Результат: 14.
Шаг 6. Сравни print и return
Функция должна вернуть квадрат числа, чтобы затем прибавить 1. Что выбрать внутри функции: print(number * number) или return number * number? Почему?
Ответ ученика
Правильный ответ к шагу 6
Нужен return number * number: возвращённое значение можно использовать в новом вычислении. print только показывает значение на экране.
Шаг 7. Итог урока
Закончи фразу: «Параметр — это …, аргумент — это …, а return …». Затем напиши функцию triple(number) и проверь её на числе 7.
Ответ ученика
Правильный ответ к шагу 7
Параметр — имя входных данных в определении функции; аргумент — конкретное значение при вызове; return передаёт результат основной программе.
def triple(number): return number * 3print(triple(7))