2012-06-07 4 views
0

Я работаю над сценарием для загрузки изображений из mangareader, и я пытался сделать это с Python, так как это первый язык, который я изучил на самом деле, и я действительно занимаюсь момент. Проблема в том, что выход из цикла, который я сделал, не работает так, как я ожидал.Неожиданный вывод цикла 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 
[...] 

И я не могу понять, почему.

Я ценю вашу помощь.

ответ

2

Это потому, что вы добавляете l в url на каждой итерации без инициализации url.

Вы должны сделать:

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

Большое спасибо. Тхи сделает трюк! –

1

Когда вы делаете следующий

url = url + str(l) 

Вы на самом деле добавление в строку, не добавляя к нему 1.

+0

Спасибо! Я этого не знал. –

+0

@LeandroPoblet Добро пожаловать в stackoverflow. Его здорово знать, что мы помогли, но вам действительно не нужно благодарить всех: P –

+0

@Flo Я за одного не против :) –

3

Ну, на каждой итерации вы

url = url + str(l) 

который присоединяет цифры для url, и он никогда не сбрасывается.

Чтобы получить желаемый результат, попробуйте

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

Таким образом, вы не изменить содержимое переменной url.

+0

Благодарим вас за ваше время и помощь! –

Смежные вопросы