Зачем нужны функции

Урок 6.1 · Программирование с нуля · Модуль 6. Функции · Бесплатно

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

Нужно знать заранее: Циклы, списки

Объяснение

Зачем это нужно: Функция — это способ написать действие один раз и вызывать его много раз. Без функций одинаковые куски кода приходится копировать: в одном месте поправил, а в трёх других забыл — и программа начинает работать по-разному.

Функции нужны везде: посчитать доставку, скидку, средний чек, налог, итог по списку расходов. Один раз описали правило — и вызываете его с разными числами.

Как это работает: Функция — это именованная часть программы, которую можно вызывать много раз. Объявляется словом def, затем имя, скобки и двоеточие.

Параметр — это значение, которое функция получает снаружи. В def receipt(prices): параметр — prices. При receipt([450, 600]) параметр получает этот список.

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

Вызов — это имя функции со скобками: receipt([450, 600]). Само объявление ничего не выполняет: пока функцию не вызвали, она просто лежит в программе.

Имена переменных: prices — цены total — итого discount — скидка delivery — доставка receipt — чек

Разбор: def receipt(prices): total = sum(prices) if total >= 1000: return total - 100 return total

print(receipt([450, 600])) → 950 print(receipt([200, 300])) → 500

Сначала функция объявляется. Внутри неё total = sum(prices) считает сумму списка. Если сумма 1000 или больше, return возвращает сумму минус 100 — это скидка. Иначе возвращается сумма без скидки.

Первый вызов receipt([450, 600]) даёт 1050, скидка 100 — на экране 950. Второй вызов receipt([200, 300]) даёт 500, скидки нет — на экране 500. Одно описание — два разных результата.

Частая ошибка: Забыть вызвать функцию. После def receipt(prices): ... на экране ничего не появится, пока вы не напишете print(receipt([450, 600])).

Ещё одна ошибка — перепутать print и return. print показывает значение на экране, но не отдаёт его программе. Если внутри функции стоит print(total), снаружи total не появится; нужен return.

И не забывайте про отступы: тело функции сдвинуто на четыре пробела. Без отступа программа не поймёт, что относится к функции.

Итог: def объявляет функцию, параметры передают ей данные, return возвращает результат, вызов выполняет. Внутри функции могут быть условия и списки — поэтому одно правило работает для разных данных.

Что дальше: В следующем уроке соберём из функций целый отчёт: одна функция посчитает итого, другая — среднее.

def delivery(total):
    if total >= 1000:
        return 0
    return 200

print(delivery(1200))
print(delivery(800))

Чек со скидкой

Напишите функцию receipt(prices), которая принимает список цен. Внутри посчитайте сумму через sum(prices). Если сумма 1000 или больше, верните сумму минус 100 — это скидка. Иначе верните сумму без скидки. Напечатайте receipt([450, 600]) и receipt([200, 300]) — каждое с новой строки.

Критерий успеха: Функция возвращает сумму списка, применяет скидку 100 при сумме от 1000 и печатает 950 и 500.

Уроки модуля 6

Что ещё есть на сайте

Учиться

  • Уроки — Все уроки трёх траекторий: список, поиск и ваш прогресс.
  • Программирование с нуля — Python с первой команды до своего проекта: 12 модулей.
  • Интерфейсы и сайты с нуля — Кнопки, страницы и мини-игры: результат виден сразу в браузере.
  • Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
  • Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
  • Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
  • Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
  • Конструктор описания задачи — Собрать описание по полям и получить готовый текст для исполнителя.

С чего начать

Потренироваться

  • Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
  • Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
  • Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
  • Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
  • Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.

Словари и юмор

Сайт, оплата и помощь

  • Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.
  • Инструкция пользователя — Как всё устроено: уроки, кабинет, уведомления, подписка, ярлык.
  • Сообщество — Вопросы и ответы: читать можно всем, писать — после входа.
  • Подписка — Тарифы, что входит, возврат 14 дней, история платежей.
  • Помощь и поддержка — Частые вопросы и форма обращения — ответ в течение дня.
  • Отзывы учеников — Что пишут те, кто уже учится: без звёзд, с проверкой каждого текста.
  • Профиль и пароль — Имя, пароль для входа без кода, уведомления, свои данные.