Чтобы посчитать набор курьера, надо знать цену двойного завтрака. Чтобы знать её, надо знать цену завтрака. А завтрак уже складывается из товаров меню. Клабс сбивается, потому что держит в голове три уровня сразу. Терминалу понадобится функция, которая на вопрос «сколько стоит набор» отвечает «сложи цены частей», а для части-набора задаёт себе тот же вопрос ещё раз.
Функция, которая зовёт саму себя, называется рекурсивной. Но сначала разберёмся с вещью, которая уже дважды мелькнула в прошлых уроках и осталась без объяснения: почему список по умолчанию «помнил» старые вызовы и почему state["revenue"] += total меняет смену без всякого global. Ответ один: имя в Python это не коробка со значением, а ярлык на нём.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.