繁体   English   中英

意外的python循环输出

[英]Unexpected python loop output

我正在研究一个脚本,以从mangareader下载图像,并且我一直在尝试使用Python进行编码,因为这是我一直学习的第一门语言,并且我现在真的很喜欢。 问题是我所做的循环的输出没有按我预期的方式工作。

soup = soup.findAll('option') # We select all the option tags
for l in soup: # And we start with a loop
    l = l.get_text()
    print l
    url = url + str(l)
    print url

我期望的输出是:

1
http://www.mangareader.net/witch-shop/1/1
2
http://www.mangareader.net/witch-shop/1/2
3
http://www.mangareader.net/witch-shop/1/3
4
http://www.mangareader.net/witch-shop/1/4
5
http://www.mangareader.net/witch-shop/1/5
[...]

它显示的是:

1
http://www.mangareader.net/witch-shop/1/1
2
http://www.mangareader.net/witch-shop/1/12
3
http://www.mangareader.net/witch-shop/1/123
4
http://www.mangareader.net/witch-shop/1/1234
5
http://www.mangareader.net/witch-shop/1/12345
[...]

我不知道为什么。

我感谢您的帮助。

好吧,每次迭代

url = url + str(l)

会将数字附加到url ,并且永远不会重置。

要获得所需的输出,请尝试

for l in soup:
    l = l.get_text()
    print l
    print url + str(l)

这样,您就不会更改url变量的内容。

这是因为您在每次迭代时都将l附加到url而不初始化url

你应该做:

#....
url2 = url + str(l)
print url2
#....

当您执行以下操作时

 url = url + str(l)

您实际上是在追加字符串,而不是加1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM