Рецепты · Шаг 2 из 4
На сколько человек
Блины в рецепте — на четыре порции, а гостей шестеро. Всё надо умножить на полтора. Но яйцо не разобьёшь на полтора: штуки округляются вверх, и граммы тоже — в магазине лучше взять чуть больше, чем не хватить.
Что сделать
Пересчитайте рецепт с одного числа порций на другое, округляя вверх до целого.
Что приходит
ingredienty— список словарей шага 1:{"chto": …, "skolko": …, "edinica": …}; менять его нельзяbylo— на сколько порций рецептnado— на сколько порций нужно
Что вернуть
Новый список новых словарей в том же порядке: skolko умножено на nado / bylo и округлено вверх до целого; «по вкусу» (None) так и остаётся.
Допишите функцию na_porcii в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа зовёт na_porcii для каждого рецепта, который вы попросили: «блины:6» — пересчитать блины на шесть порций. Решите шаг — и список покупок станет на ваше число гостей.
Рецепт на 4 порции, нужно на 6: 200 г муки → 200 · 6 / 4 = 300 г, 2 яйца → 3, соль «по вкусу» остаётся «по вкусу». А будь яиц три, вышло бы 4,5 — и округлилось бы вверх, до пяти.
na_porcii([{"chto": "мука", "skolko": 200, "edinica": "г"}, {"chto": "яйца", "skolko": 2, "edinica": "шт"}, {"chto": "соль", "skolko": None, "edinica": None}], 4, 6)
[{'chto': 'мука', 'skolko': 300, 'edinica': 'г'}, {'chto': 'яйца', 'skolko': 3, 'edinica': 'шт'}, {'chto': 'соль', 'skolko': None, 'edinica': None}]
Каждое количество умножается на nado и делится на bylo; если вышло не целое — округляется вверх до целого: 4,5 → 5, 4,01 → 5, 4 → 4. None остаётся None.
Возвращается новый список новых словарей с теми же ключами, в том же порядке. Переданный список и словари в нём менять нельзя: тот же рецепт может понадобиться ещё раз на другое число порций.
bylo и nado — целые больше нуля.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.