v1.0.0

Python с нуля для ЕГЭ · Функции: параметры и возвращаемый результат

Урок курсаPython 35 задачБесплатно

Функции: параметры и возвращаемый результат

Разберём путь данных от аргумента к параметру и от return к месту вызова функции.

Теория

Функция задаёт именованное вычисление

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

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

def rectangle_area(width, height):    return width * height area = rectangle_area(3, 5)

От аргумента к результату

При вызове аргументы связываются с параметрами, затем выполняется тело. Команда return завершает вызов и подставляет результат туда, где находилось выражение вызова.

print и return решают разные задачи: print показывает значение человеку, return передаёт его следующей части программы.

Разберём на примере
Проследим rectangle_area
Функция вызывается с аргументами 3 и 5.
  1. Параметр width получает 3, height получает 5.
  2. Тело вычисляет произведение 15.
  3. return передаёт 15 в присваивание переменной area.
Проверьте себя
Почему функция с print вместо return может показать правильное число, но сломать следующее вычисление?
print выводит число, но сам вызов возвращает None. Следующее вычисление получает не показанное число, а None.

Печать не заменяет возврат

Если функция только печатает ответ, выражение с её вызовом получает None. Такой результат нельзя надёжно передать другой функции или использовать в дальнейшей формуле.

Как проверить функцию

Сначала сформулируйте контракт: какие значения функция получает и что возвращает. Затем подставьте маленькие аргументы и проследите только локальные переменные одного вызова.

Как действовать
Проверяем контракт вызова
  1. Назовите вход. Сопоставьте каждый аргумент с параметром.
  2. Выполните тело. Используйте локальные значения текущего вызова.
  3. Найдите return. Определите значение, которое уйдёт наружу.
  4. Используйте результат. Проверьте место присваивания или внешний вызов.

Практика

Проследите вызов функции

Функция double(x) возвращает x * 2. Что вернёт вызов double(4)?

Подсказка
Аргумент 4 становится значением параметра x.
Решение

Внутри функции вычисляется 4 * 2. Команда `return` передаёт результат 8 в место вызова.

Подставьте два аргумента

Функция area(width, height) возвращает width * height. Что вернёт area(3, 5)?

Подсказка
Аргументы связываются с параметрами по порядку.
Решение

width получает 3, height — 5. Произведение равно 15.

Используйте возвращённое значение

Функция next_number(x) возвращает x + 1. Чему равно result после result = next_number(4)?

Подсказка
`return` подставляет вычисленное значение в место вызова.
Решение

Функция вычисляет 4 + 1 и возвращает 5, поэтому result получает 5.

Верните результат

Функция вычисляет value * 2, но только печатает его. Какое ключевое слово нужно использовать, чтобы вызывающий код получил значение?

Подсказка
`print` показывает текст, а вызывающему выражению нужен результат.
Решение

Ключевое слово `return` завершает вызов и передаёт вычисленное значение наружу.

Проверьте логическую функцию

Функция is_even(n) возвращает n % 2 == 0. Что вернёт is_even(14)?

Подсказка
Остаток от деления 14 на 2 равен нулю.
Решение

Сравнение 0 == 0 истинно, поэтому функция возвращает `True`.

Итог

Теперь вы можете описать вход и выход функции, проследить вызов и вернуть значение для дальнейших вычислений.

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

Прогресс

0 / 5
x

Вы ещё не решали задания