2012-08-17 80 views
2

試圖向計INT添加到字符串(網站網址)結束蟒蛇增加數字符串

代碼:

count = 0 
    while count < 20: 
    Url = "http://www.ihiphopmusic.com/music/page/" 
    Url = (Url) + (count) 
    #Url = Url.append(count) 
    print Url 

我想:

http://www.ihiphopmusic.com/music/page/2 
http://www.ihiphopmusic.com/music/page/3 
http://www.ihiphopmusic.com/music/page/4 
http://www.ihiphopmusic.com/music/page/5 

結果:

Traceback (most recent call last): 
    File "grub.py", line 7, in <module> 
    Url = Url + (count) 
TypeError: cannot concatenate 'str' and 'int' objects 
+0

老兄,使用'url =​​'而不是拼接,因爲在python的某些形式(如Jython)中,您將產生大量字符串連接的開銷。 – 2012-08-17 03:07:04

回答

2

試試

Url = (Url) + str(count) 

改爲。問題在於您試圖連接字符串號碼,而不是兩個字符串。 str()將爲您解決這個問題。

str()將提供適合串聯的字符串版本count,但實際上並沒有將count轉換爲int中的字符串。看到這個例子:

>>> n = 55 

>>> str(n) 
>>> '55' 

>>> n 
>>> 55 

最後,認爲格式化字符串更有效,而不是連接它。即,

Url = '%s%d' % (Url, count) 

Url = '{}{}'.format(Url, count) 

此外,你有一個無限循環以來的count的值永遠不會在循環內改變。爲了解決這個問題添加

count += 1

在你的循環的底部。

2

嘗試鑄造計數的字符串作爲

Url = "http://www.ihiphopmusic.com/music/page/" + str(count) 

或使用格式化

Url = "http://www.ihiphopmusic.com/music/page/%s" % count 

,或者甚至

Url = "http://www.ihiphopmusic.com/music/page/{count}".format(count=count) 
0
Url = "http://www.ihiphopmusic.com/music/page/%d" % (count,) 
0

你必須修改int到串。

Url = (Url) + str(count) 
0

您需要將整數轉換爲字符串

count = 0 
while count < 20: 
    Url = "http://www.ihiphopmusic.com/music/page/" 
    Url = (Url) + str(count)  
    #Url = Url.append(count)  
    print Url 
10

的到底是什麼問題回溯狀態。 Python不知道該怎麼辦"hello" + 12345

您必須首先將整數count轉換爲字符串。

此外,你永遠不會增加count變量,所以你的while循環將永遠持續下去。

嘗試是這樣的:

count = 0 
url = "http://example.com/" 
while count < 20: 
    print(url + str(count)) 
    count += 1 

甚至更​​好:

url = "http://example.com/" 
for count in range(1, 21): 
    print(url + str(count)) 

由於Just_another_dunce指出,在Python 2.x中,你也可以做

print url + str(count) 
+1

您可能應該將最後一個計數更改爲i – happydave 2012-08-17 03:08:54

+0

@happydave:謝謝。接得好。 – 2012-08-17 03:09:18

+1

我也算作品:) – happydave 2012-08-17 03:11:02

0

使用這個:

url = "http://www.ihiphopmusic.com/music/page/" while count < 20: '''You can redefine the variable Also, you have to convert count to a string as url is also a string''' url = url + str(count) print url