DamiRocK

Python: композиция операций и стоимость нескольких покупок

Собираем выражение из нескольких действий: три книги по 200 и две ручки по 30. Разбираем промежуточные значения до вызова print().

Из простых операций в выражение

Композиция позволяет использовать результаты одних операций в других. В 2 * 4 * 5 * 10 последовательные умножения дают 8, 40 и 400. Всё выражение затем может стать аргументом print().

Если операторы разные, учитывается приоритет. В 2 + 3 * 4 сначала получается 12, затем 14. Чтение символов строго слева направо без учёта структуры дало бы неправильный ответ.

Задание источника

Нужно купить три книги по 200 рублей и две ручки по 30 рублей. Вычислите итоговую стоимость. Цены являются данными учебного примера.

print(3 * 200 + 2 * 30)

Первое произведение равно 600, второе — 60. Сумма равна 660; именно это целое число будет напечатано.

Разбор по смысловым частям

Каждое произведение обозначает стоимость одного вида товаров. Плюс объединяет две стоимости, а не количество книг с ценой ручки. Такой смысловой разбор помогает проверить выражение ещё до запуска.

В учебной проверке можно временно вывести оба промежуточных произведения отдельно. Для окончательного ответа, если условие требует только общую сумму, лишние строки нужно убрать.

Проверка порядка

Запись (3 + 2) * (200 + 30) тоже синтаксически верна, но описывает другой расчёт и даёт 1150. Скобки не являются украшением: они могут менять математическую модель.

Источник знакомит с объединением операций до введения переменных. Поэтому решение сохранено одним выражением; сохранение промежуточных результатов под именами рассматривается отдельно в уроках о переменных.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Адаптация с проверочным примером.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.