Как условие может быть выполнено без нарушения l oop in python - PullRequest
1 голос
/ 06 августа 2020

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

from time import sleep as p

lit = [1, 2, 3, 4, 5]
n = 0
while True:
    p(1)
    print(lit[n])
    n = (n+1) % len(lit)
    if lit[n] == lit[-1]:
        print('-'*80)

Я также пробовал следующее условие, но оно не сработало

if n == len(lit):
    print('-'*80)

вот что я получаю

1
2
3
4
--------------------------------------------------------------------------------
5
1
.

вот ожидаемый результат

1
2
3
4
5
--------------------------------------------------------------------------------
1
.

Ответы [ 5 ]

4 голосов
/ 06 августа 2020

Правильный тест будет n == 0.

2 голосов
/ 06 августа 2020

Обновите n после печати:

from time import sleep as p

lit = [1, 2, 3, 4, 5]
n = 0
while True:
    p(1)
    print(lit[n])
    if lit[n] == lit[-1]:
        print('-'*80)
    n = (n+1) % len(lit)

Вывод:

1
2
3
4
5
----------------
1 голос
/ 06 августа 2020

Я думаю, это должно сработать для вас,

from time import sleep as p

lit = [1, 2, 3, 4, 5]
n = 0
while True:
    p(1)
    print(lit[n])
    n = (n+1) % len(lit)
    if lit[n-1] == lit[-1]:
        print('-'*80)
1 голос
/ 06 августа 2020

Я не уверен, правильно ли я понял вопрос. Разве этого недостаточно?

from time import sleep as p

lit = [1, 2, 3, 4, 5]
while True:
    for n in lit:
        p(1)
        print(n)
    print('-'*80)
0 голосов
/ 06 августа 2020

Убедитесь, что вы делаете все в правильном порядке

Сначала напечатайте число Затем, если число является последним элементом, выведите строку Наконец увеличьте число

Ваш код, но измените его порядок:

from time import sleep as p

lit = [1, 2, 3, 4, 5]
n = 0
while True:
    p(1)
    print(lit[n])
    if lit[n] == lit[-1]:
        print('-'*80)
    n = (n+1) % len(lit)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...