Нумерация и вывод списка

Пример: я чередую завтраки в порядке: гречка-манка-рис. Нужно составить план на следующие n дней. Что должно получиться:

5 дней
1-гречка
2-манка
3-рис
4-гречка
5-манка

вот что выходит у меня, но он каждый продукт прописывает n кол-во раз вместе с нумерацией.

n = int(input("кол-во дней:"))
items = ["гречка", "манка", "рис" ]
for i, item in enumerate (items):
    for _ in range (n):
        print(i+1, item)

Ответы (1 шт):

Автор решения: Sergey K.

Логически твой алгоритм: взять элемент из списка и n раз вывести.

Нужен другой: совершить n циклов и брать следующий элемент, а если дошли до конца, то начать с первого.

items = ["гречка", "манка", "рис" ]
step = 0
for _ in range(n):
  if step == len(items):
    step = 0
  print(items[step])
  step += 1

От условия можно избавиться, зная как работает оператор получения остатка от деления %.

items = ["гречка", "манка", "рис" ]
for i in range(n):
  step = i % len(items)
  print(items[step])

Когда i становится равен количеству элементов, то остаток от деления возвращает 0, и так далее. Получается цикличный перебор без условий

→ Ссылка