意外的python循环输出

2024-05-16 07:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本来从mangarader下载图像,我一直在尝试用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
[...]

我不知道为什么。你知道吗

我感谢你的帮助。你知道吗


Tags: 图像脚本语言httpurlnetwww方式
3条回答

这是因为您在每次迭代时都将l附加到url,而没有初始化url。你知道吗

你应该做:

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

在每次迭代中

url = url + str(l)

它将数字附加到url,并且从不重置。你知道吗

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

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

这样就不会更改url变量的内容。你知道吗

当您执行以下操作时

 url = url + str(l)

实际上,您是在向字符串追加内容,而不是向其中添加1。你知道吗

相关问题 更多 >