开发者

repeat an iteration of for loop

if for some reason i want to repeat the same iteration how i can do it in python?

for eachId in listOfIds:
    #assume here that eachId conatins 10
    response = makeRequest(eac开发者_JS百科hId) #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

now when the function wake up from sleep after one day (market (currency trade market) is open) i want to resume my for loop from eachId = 10 not from eachId = 11, because eachId = 10 is not yet been processed as market was closed, any help is highly appreciated thanks.


Do it like this:

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

The title of your question is the clue. Repeating is achieved by iteration, and in this case you can do it simply with a nested while.


Use a while loop?

counter = 0
while counter < len(listOfIds):
  # do processing
  counter = counter + 1

And just don't increment, if you get 'market is closed'.


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


for eachId in listOfIds:
    while makeRequest(eachId) == 'market is closed':
       time.sleep(24*60*60) #sleep for one day

As @David added, if you don't need to capture response.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜