повторить итерацию цикла for
если по какой-то причине я хочу повторить ту же итерацию, как я могу это сделать в python?
for eachId in listOfIds:
#assume here that eachId conatins 10
response = makeRequest(eachId) #assume that makeRequest function request to a url by using this id
if response == 'market is closed':
time.sleep(24*60*60) #sleep for one day
теперь, когда функция просыпается от сна после одного дня (рынок (рынок валютной торговли) открыт), я хочу возобновить цикл for от eachId = 10
not
С eachId = 11
, потому что eachId = 10
еще не обработано как market was closed
, любая помощь будет высоко ценится, спасибо.
4 ответов
делай так:
for eachId in listOfIds:
successful = False
while not successful:
response = makeRequest(eachId)
if response == 'market is closed':
time.sleep(24*60*60) #sleep for one day
else:
successful = True
название вашего вопроса является ключом. повторять достигается путем итераций, и в этом случае вы можете сделать это просто с вложенной while
.
использовать while
петли?
counter = 0
while counter < len(listOfIds):
# do processing
counter = counter + 1
и просто не увеличивайте, если вы получите "рынок закрыт".
for eachId in listOfIds:
while makeRequest(eachId) == 'market is closed':
time.sleep(24*60*60) #sleep for one day
Как добавил @ David, если вам не нужно захватывать response
.
i = 0
while i < len(listOfIds):
eachId = listOfIds[i]
#assume here that eachId conatins 10
response = makeRequest(eachId) #assume that makeRequest function request to a url by using this id
if response == 'market is closed':
time.sleep(24*60*60) #sleep for one day
else:
i += 1