8

文字列の最後にcountintを追加しようとしています(WebサイトのURL)

コード:

  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
4

7 に答える 7

20

問題は、まさにトレースバックの状態です。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)
于 2012-08-17T03:06:56.307 に答える
5

試す

 Url = (Url) + str(count)

代わりは。問題は、2つの文字列ではなく、文字列数値を連結しようとしていたことでした。str()はこれを修正します。

str()実際にintから文字列countに変換することなく、連結に適した文字列バージョンを提供します。countこの例を参照してください。

>>> n = 55

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

>>> n
>>> 55

最後に、文字列を連結するよりもフォーマットする方が効率的であると考えられています。つまり、

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

また

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

また、の値はループ内で変更されないため、無限ループが発生します。countこれを修正するには、

count += 1

ループの一番下にあります。

于 2012-08-17T03:04:34.673 に答える
3

次のように文字列にカウントをキャストしてみてください

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) 
于 2012-08-17T03:05:31.443 に答える
2

これを使って:

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

于 2018-01-17T19:23:53.800 に答える
1
Url = "http://www.ihiphopmusic.com/music/page/%d" % (count,)
于 2012-08-17T03:05:41.287 に答える
0

int を文字列に変更する必要があります。

Url = (Url) + str(count)
于 2012-08-17T03:05:45.687 に答える
0

整数を文字列に変換する必要があります

count = 0
while count < 20:
    Url = "http://www.ihiphopmusic.com/music/page/"
    Url = (Url) + str(count)     
    #Url = Url.append(count)     
    print Url 
于 2012-08-17T03:06:02.253 に答える