Вы можете сделать это с помощью цикла while
внутри цикла for
и выходить из него только в том случае, если попытка была выполнена успешно:
for i in range(20):
while True:
result = do_stuff() # function should return a success state!
if result:
break # do_stuff() said all is good, leave loop
Немного зависит от задачи, например, Вы могли бы хотеть try-except
вместо:
for i in range(20):
while True:
try:
do_stuff() # raises exception
except StuffError:
continue
break # no exception was raised, leave loop
Если вы хотите наложить ограничение на количество попыток, вы можете вложить другой цикл for
следующим образом:
for i in range(20):
for j in range(3): # only retry a maximum of 3 times
try:
do_stuff()
except StuffError:
continue
break