While循环不会更新值

时间:2019-03-25 06:32:37

标签: python python-3.x beautifulsoup

我是Python的新手,最近无法在while循环中正常使用-变量未更新新值!

我创建了一个while循环,当找到另一个URL时应在其中更新URL。我还添加了一个“ times”变量来测试循环执行的时间。 (计数= 4 =>最近版本次数= 4)。但是,“时间”确实发生了变化,但网址仅发生了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 个答案:

答案 0 :(得分:1)

您的循环看起来应该运行count次,每次都执行完全相同的操作。但是,最后两行没有缩进,因此它们不在循环内。这意味着它们将在循环完成后仅运行一次。

如果您想在每次循环运行时都运行最后两行,则需要将它们缩进到与times = times + 1相同的级别。