Код БарсикОсновы Python
Основы Python›C14 · Теория

Теория · C14

Свои функции и контракт задачи

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

РАЗБИРАЕМ ПО ШАГАМ

От идеи к работающему коду

Функция даёт имя отдельному действию и позволяет вызывать его с разными данными. Главное — договориться о контракте: что приходит на вход и какое значение возвращается.

Сразу к запуску примера ↓
Барсик показывает функцию как преобразование входных данных в результат.
Барсик показывает функцию как преобразование входных данных в результат.
  1. 1Параметры на входе
  2. 2Вычисление внутри
  3. 3Возвращаемое значение

1. Определение и вызов

def начинает определение функции. После имени идут скобки с параметрами и двоеточие, а тело записывается с отступом. Определение само по себе не выполняет тело: нужен вызов.

Параметр — имя внутри функции, аргумент — конкретное переданное значение. В вызове greet("Анна") строка становится значением параметра name.

Python
def greet(name):    return f"Привет, {name}!"print(greet("Анна"))print(greet("Барсик"))

2. return и print решают разные задачи

print показывает текст, return передаёт результат тому коду, который вызвал функцию. Возвращённое значение можно сохранить, сравнить или использовать в следующем вычислении.

return завершает выполнение функции. Если return с выражением нет, функция возвращает None. Поэтому вычислительные функции лучше не связывать с печатью и input.

Python
def square(number):    return number * numberresult = square(4)print(result + 1)

3. Локальные переменные

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

Это помогает использовать короткие функции независимо. Передавай необходимые данные параметрами; так поведение не будет скрыто зависеть от случайной внешней переменной.

Python
def circle_area(radius):    pi = 3.141592653589793    area = pi * radius ** 2    return areaprint(round(circle_area(2), 2))

4. Контракт и проверки

Контракт указывает допустимые входные данные и результат. Например, initials получает два непустых слова и возвращает строку инициалов. Если задача требует вернуть значение, один print не выполнит договорённость.

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

Python
def initials(first, last):    return first[0].upper() + "." + last[0].upper() + "."print(initials("анна", "смирнова"))print(initials("иван", "петров"))

Где легко ошибиться

  • Напечатать ответ вместо return, когда тест ждёт значение.
  • Перепутать порядок аргументов.
  • Использовать локальное имя за пределами функции.
Проверь понимание: Чему равен result после result = print("Привет")?

None. print вывел сообщение, но не вернул напечатанную строку.

Функция возвращает результат

Запусти пример. Затем измени код или входные данные и проверь, как меняется вывод.

Пример входных данных

Ввод не нужен

Ожидаемый вывод

14
24
main.pyPython · можно менять код

Подготавливаем редактор…

Загрузка Python…

Каждый ответ — с новой строки.

Твой вывод

Здесь появится результат запуска.

Дальше — самостоятельные задачи

  1. Вернуть площадь круга по радиусу
  2. Вернуть инициалы по двум словам
  3. Проверить функцию на нескольких входах без ручного ввода