Как структурировать и распечатать меню в ресторанном стиле с разбивкой по категориям и согласованными ценами на Python? Python

Программы на Python
Anonymous
Как структурировать и распечатать меню в ресторанном стиле с разбивкой по категориям и согласованными ценами на Python?

Сообщение Anonymous »

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

Код: Выделить всё

menu = {
"Drinks": [
{"name": "Cold Brew Coffee", "price": 4.50},
{"name": "Vanilla Latte", "price": 5.00},
{"name": "Caramel Mocha", "price": 5.25}
],
"Seasonal": [
{"name": "Peppermint Mocha", "price": 5.75},
{"name": "Sugar Cookie Latte", "price": 5.75}
]
}

item_number = 1
item_map = {}

for category, items in menu.items():
print(category)
print("-" * len(category))
for item in items:
print(f"{item_number}. {item['name']} ${item['price']}")
item_map[item_number] = item
item_number += 1
print()
Это работает, но я столкнулся с несколькими проблемами:
  • Цены не совпадают, когда имена товаров имеют разную длину
  • Логика форматирования смешивается со структурой данных
  • Я не уверен, что использование таких словарей является самым чистым подходом в долгосрочной перспективе
Мне бы хотелось, чтобы результат больше походил на настоящее меню, в котором цены выстраиваются вертикально, а категории четко разделены, без ручного подсчета пробелов.
Концептуально я пытаюсь смоделировать меню, похожие на настоящие меню напитков в кафе, которые четко разделяют обычные и сезонные блюда, как в этом примере: https://dbrosmenu.com/
Что будет лучший способ:
  • Структурировать данные меню
  • Четко отформатировать выровненный вывод (без жестко запрограммированных пробелов)
  • Сохранять простой для пользователей числовой выбор
Четкое объяснение с примером кода будет очень полезно.

Подробнее здесь: https://stackoverflow.com/questions/798 ... igned-pric
dutchbrous
Re: Как структурировать и распечатать меню в ресторанном стиле с разбивкой по категориям и согласованными ценами на Pyth

Сообщение dutchbrous »

The Dutch Bros Menu gives a good impression of a brand that focuses on customer choice. Instead of just offering fixed drinks, they allow room for customization and variety. That makes a big difference. It feels more engaging and less like a standard menu you see everywhere else.
dutchbromenu
Re: Как структурировать и распечатать меню в ресторанном стиле с разбивкой по категориям и согласованными ценами на Pyth

Сообщение dutchbromenu »

Dutch Bros Faves is a collection of the most loved and best-selling drinks from Dutch Bros Coffee, featuring signature flavors and premium quality ingredients. This category includes fan favorites like Golden Eagle, Caramelizer, Annihilator, Kicker, and Cocomo, all crafted with rich espresso, smooth cream, and delicious flavor blends. Whether you prefer hot lattes, refreshing iced coffees, or blended freezes, Dutch Bros Menu Faves offers something for every taste.

Вернуться в «Python»