Как установить максимальное количество итераций в цикле?

#python-3.x #loops

#python-3.x #циклы

Вопрос:

Я перехожу по ссылке, в которой я хотел бы установить количество повторений равным 3. Это означает, что я выйду из цикла после 3 попыток. Не могли бы вы, пожалуйста, подробнее рассказать о том, как достичь моей цели?

 import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
while r.status_code != 200:
    time.sleep(2)
    r = session.get(link, headers = headers) 
  

Ответ №1:

Вы можете сохранить счетчик и цикл, который позволяет выполнять итерации столько раз, сколько захотите:

 while r.status_code != 200 and count < 3: 
  

Нравится:

 import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

count = 1
r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
while r.status_code != 200 and count < 3:
    time.sleep(2)
    r = session.get(link, headers = headers) 
    count  = 1
  

Ответ №2:

Используйте счетчик.
while condition 1 и counter < limit

Ответ №3:

Вы могли бы просто добавить вторую переменную, которая подсчитывает количество попыток:

 import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
tries = 0
while r.status_code != 200 and tries != 3:
    time.sleep(2)
    r = session.get(link, headers = headers)
    tries  = 1
  

Комментарии:

1. Я думаю, это будет выполняться четыре раза (я предполагаю, что тот, который находится вне цикла, также включен).