Индексы vs распаковка
Менее читаемо
for item in data:
if item[1] > 10:
print(item[0], item[1])Лучше
for name, amount in data:
if amount > 10:
print(name, amount)Дублирование формата vs переменные ширины
В таблицах не стоит вручную подгонять пробелы. Лучше задать ширину полей в f-string.
print(f"{name:<15} | {price:>10.2f}")
Большая задача vs маленькие шаги
Задачи 5–7 легче решать по слоям: сначала данные, затем расчёты, затем текст. Не смешивайте все действия в одной длинной строке.
Функции для повторяемой логики
def discounted_price(price, discount):
return price * (1 - discount / 100)
Проверить по документации: функции и type hints можно использовать для улучшения структуры, но исходный практикум решается без вынесения логики в функции.