Пока цикл не обновляет значение - PullRequest
1 голос
/ 25 марта 2019

Я новичок в Python и недавно не могу хорошо работать с циклом while - переменная не обновила новое значение!

Я создал цикл while, в котором URL должен обновляться при обнаружении другого URL. Я также добавляю переменную 'times' для проверки количества циклов. (count = 4 => время последней версии = 4). Тем не менее, «времена» изменились, а URL просто меняются 1 раз.

URL = input('Enter - ')
count = input('Enter count: ')
pos = input('Enter position: ')

times = 0
links = list()
while times < int(count):
    html = urlopen(URL, context=ctx).read()
    soup = BeautifulSoup(html, "html.parser")

    tags = soup('a')
    for tag in tags:
        link = tag.get('href',None)
        links.append(link)
    URL = links[int(pos) - 1]
    times = times + 1
name = re.findall('known_by_(.+).html',URL)
print(name)

Я ожидаю, что URL будет обновлен, и цикл будет запущен снова 4 раза, но получит только результат первого цикла выполнения. Между тем переменная 'times' добавлена ​​достаточно 4 раза.

1 Ответ

1 голос
/ 25 марта 2019

Ваш цикл выглядит так, как будто он должен запускаться count раз, делая то же самое каждый раз. Однако последние две строки не имеют отступов, поэтому они находятся за пределами цикла. Это означает, что они будут работать только один раз, когда цикл закончится.

Если вы хотите запускать последние две строки каждый раз при запуске цикла, вам нужно сделать отступ в том же уровне, что и times = times + 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...