Число без объяснения
Выражение 6 * 17 легко вычислить, но из него не видно, что означают множители. Неочевидные числовые значения, встроенные в расчёт без понятного назначения, называют магическими числами.
Проблема не в самом присутствии чисел. Важно, может ли читатель определить их роль и безопасно изменить нужный параметр.
Задание источника
Исходный код печатает подпись Boxes in stock:, затем результат 6 * 17. Перепишите его с осмысленными переменными, сохранив вывод.
label = "Boxes in stock:"
pallets_count = 6
boxes_per_pallet = 17
print(label)
print(pallets_count * boxes_per_pallet)
Результат:
Boxes in stock:
102
Смысл множителей
pallets_count обозначает количество паллет, а boxes_per_pallet — число ящиков на одной. Произведение имеет единицы «ящики», что согласуется с подписью.
Имена number1 и number2 убрали бы литералы из выражения, но почти не добавили бы смысла. Задание состоит не в механическом переносе чисел на другую строку, а в раскрытии их назначения.
Что проверить после изменения
Результат должен оставаться 102, подпись — неизменной, порядок двух строк — прежним. Если требуется изменить размер поставки, теперь ясно, какое значение относится к числу паллет, а какое — к вместимости одной паллеты.
В учебном эталоне исходника используется именно такая интерпретация 6 и 17. Она сохранена в адаптации; фактических сведений о реальном складе пример не содержит.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение и смысл эталона сохранены.