Как структурировать и распечатать меню в ресторанном стиле с разбивкой по категориям и согласованными ценами на 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

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