开发者

repeat an iteration of for loop

开发者 https://www.devze.com 2023-04-02 09:41 出处:网络
if for some reason i want to repeat the same iteration how i can do it in python? for eachId in listOfIds:

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

精彩评论

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