Сон после каждой третьей итерации в цикле for - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь перевести мой скрипт в спящий режим после каждой третьей итерации цикла for.Это то, что у меня есть до сих пор:

 #List of words
 Word_list = ['apple','orange','grape','mango','berries','banana','sugar']

 #Loop through the list of words with the index and value of the list
 for i,word in enumerate(Word_list):
     #Store value of i in v
     v = i
     #If the value of the index, same as the 3rd loop iteration is 3, do this
     if v == 3*(i+1):
       sleep(3)
       print(i+1,word,'done')
     #Else do this
     else:
       print('exception')

Вывод не тот, который я ожидал.

Ожидаемый вывод:

exception
exception
3,grape,done
exception
exception
6,banana,done
exception 

Ответы [ 3 ]

1 голос
/ 09 апреля 2019

Это должно сделать это. Выполнение v = i с последующей проверкой v == 3 * (i + 1) всегда дает значение False, поскольку вы проверяете i==3*(i+1), что верно для i=-1/2

import time
Word_list = ['apple','orange','grape','mango','berries','banana','sugar']
#Loop through the list of words with the index and value of the list
for i,word in enumerate(Word_list, 1):
    #modulus function checks for divisibility by 3
    if (i %3 == 0):
        time.sleep(1)
        print(i,word,'done')
    #Else do this
    else:
       print('exception')
0 голосов
/ 09 апреля 2019

это вариант:

from time import sleep

Word_list = ['apple', 'orange', 'grape', 'mango', 'berries', 'banana', 'sugar']

# Loop through the list of words with the index and value of the list
for i, word in enumerate(Word_list, start=1):
    if i % 3 == 0:
        sleep(3)
        print(i, word, 'done')
    else:
        print('exception')

Хитрость заключается в том, чтобы начать перечисление с 1 и проверить, равен ли i%3 нулю.

0 голосов
/ 09 апреля 2019

Ваше утверждение if не соответствует тому, что вы хотите. v никогда не будет равно 3*(i+1), потому что вы установили i=v ранее в цикле. То, что вы хотите сделать, это модуль v на 3, где он будет равен 0, так что вы знаете, что он трижды просматривал список. Вот как должен выглядеть код

import time
#List of words
Word_list = ['apple','orange','grape','mango','berries','banana','sugar']

#Loop through the list of words with the index and value of the list
for i,word in enumerate(Word_list):
    #Store value of i in v
    v = i
    #If the value of the index, same as the 3rd loop iteration is 3, do this
    if (v + 1) %3 == 0:
        time.sleep(3)
        print(i+1,word,'done')
    #Else do this
    else:
        print('exception')

, который дает этот вывод:

exception
exception
3 grape done
exception
exception
6 banana done
exception
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...