← ДУП.03 · Введение в технологии ИИ

Функция square возвращает число вызывающему коду
Практическое занятие №27 1 урок · ~45 мин 1-ИИ9-4 · без пароля ДУП.03 онлайн-эмулятор Размещено: 06.10.2026

Возвращаемые значения и декомпозиция кода

Один урок (~45 мин), ссылка открыта без пароля группы. Оператор return и разбиение сложной задачи на серию простых функций. Код — в OnlineGDB (Python 3). Дополнительно: online-python-compiler.ru. Опора: ветвления из ПЗ №21 и ПЗ №22.

Прогресс занятия0%
Ответы сохраняются в этом браузере автоматически ФИО не указано

0 Перед началом

Эмулятор: OnlineGDB · Python 3, запасной Programiz, дополнительно online-python-compiler.ru.

1 Оператор return ~12 мин

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

def square(n):
    return n * n

area = square(4)      # area станет 16
print(area)

def shout(name):
    print("Привет,", name)   # на экране есть текст

x = shout("Анна")
print(x)                     # None — функция ничего не вернула
print(...)return ...
Что делаетвыводит на экранотдаёт значение вызывающему коду
Можно сохранить в переменнуюполучится Noneда: x = f()
Код функции после этой строкипродолжаетсяне выполняется
Если return нет, Python всё равно завершает функцию и возвращает None.

2 Декомпозиция: одна задача — несколько функций ~10 мин

Сложную программу режут на маленькие функции. Каждая делает одно дело и возвращает результат. Главный код только собирает их вместе.

Плохо: всё в одной куче

  • длинный скрипт, трудно найти ошибку;
  • один и тот же расчёт копируется;
  • неясно, что является «ответом».

Лучше: серия простых функций

  • у функции понятное имя и один результат;
  • её можно вызвать из нескольких мест;
  • проверять проще: вызвал — посмотрел return.
def discount(price, percent):
    return price * (100 - percent) / 100

def label(price, final):
    return f"было {price}, стало {final}"

def main():
    price = 1000
    final = discount(price, 10)
    print(label(price, final))

main()

W Разминка

1. Оператор return нужен, чтобы…

2. Если в функции нет return, вызов вернёт…

3. Декомпозиция кода — это…

A Функции, которые возвращают значение ~12 мин

Напишите две функции. Внутри них — return, печать только снаружи.

  1. celsius_to_fahrenheit(c) возвращает c * 9 / 5 + 32.
  2. is_even(n) возвращает True или False.
  3. Вызовите обе и напечатайте результаты (например, 0 °C и числа 4 и 7).
  4. Убедитесь, что результат можно сохранить в переменную и использовать дальше.
def celsius_to_fahrenheit(c):
    return c * 9 / 5 + 32

f = celsius_to_fahrenheit(0)
print(f)   # 32.0

B Чек: разбейте задачу на функции ~15 мин

Одна «большая» задача — цена со скидкой и короткая строка чека. Не пишите всё в одном блоке без функций.

  1. final_price(price, percent) — возвращает цену после скидки.
  2. receipt_line(name, price, percent) — вызывает final_price и возвращает строку вида Чай: 90.0.
  3. В main() вызовите receipt_line для двух товаров и напечатайте строки.
  4. Внутри функций расчёта не используйте print — только return.

T Итоговый тест

Ориентир: от 7 из 10.

1. Строка return в функции…

2. После x = f(), если f только печатает и не делает return, в x будет…

3. Код функции, записанный ниже return…

4. def add(a, b): return a + b и s = add(2, 3). Чему равно s?

5. Хорошая декомпозиция — это когда…

6. return "ok" возвращает значение типа…

7. Чтобы использовать результат функции в расчёте, пишут…

8. Функция def ping(): print("pong") при вызове print(ping()) напечатает…

9. Зачем дробить задачу на функции с return?

10. В return можно поставить…

R Отчёт и сдача

Нажмите «Собрать отчёт».
Сохранено