Python中将数字添加到字符串的方法

9

尝试将计数 int 添加到字符串的末尾(网站 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

兄弟,使用 url = <whatever> 而不是进行字符串连接,因为在某些形式的 Python(如 Jython)中,字符串连接会产生巨大的开销。 - Snakes and Coffee
7个回答

21
问题就在于错误提示中所述的内容。 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
你可能应该将最后的 count 改为 i。 - happydave
快速注释,如果使用Python 2.7,则print是一个语句而不是函数。 - Snakes and Coffee
@Justanotherdunce:是的,我应该包括那个,谢谢。不过,无论如何,我更喜欢在版本未指定的情况下使用print(),因为它可以在任何情况下工作。因此,我也使用range()而不是xrange() - Joel Cornett

6

尝试

 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代码。

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) 

2

使用以下代码:

url = "http://www.ihiphopmusic.com/music/page/" while count < 20: '''您可以重新定义变量 同时,您需要将计数转换为字符串,因为url也是字符串''' url = url + str(count) print url


1
Url = "http://www.ihiphopmusic.com/music/page/%d" % (count,)

0

你需要将整数类型转换为字符串类型。

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 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接