我怎样才能连接在Python中的string和数字?

我试图在Python中连接一个string和一个数字。 当我尝试这个时,它给了我一个错误:

"abc" + 9 

错误是:

 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> "abc" + 9 TypeError: cannot concatenate 'str' and 'int' objects 

为什么我无法做到这一点?

我怎样才能连接在Python中的string和数字?

请详细说明“通过”声明的用法…..

Python是强types的 。 没有隐式types转换。

你必须做的其中之一:

 "asd%d" % 9 "asd" + str(9) 

如果它以你期望的方式工作(导致"abc9" ),那么"9" + 9将提供什么? 18还是"99"

要消除这种歧义,您需要在这种情况下明确要转换的内容:

 "abc" + str(9) 

由于Python是一种强types语言,因此在Perl中使用string和整数连接是没有意义的, 因为没有定义的方式来相互“添加”string和数字。

显式比隐式更好。

…说“Python的禅” ,所以你必须连接两个string对象。 你可以通过使用内build的str()函数从整数中创build一个string来实现:

 >>> "abc" + str(9) 'abc9' 

或者使用Python的string格式化操作 :

 >>> 'abc%d' % 9 'abc9' 

也许更好,使用str.format()

 >>> 'abc{0}'.format(9) 'abc9' 

禅宗还说:

应该有一个 – 最好只有一个 – 明显的方法来做到这一点。

这就是为什么我给了三个选项。 它继续说…

尽pipe这种方式一开始可能并不明显,除非你是荷兰人。

要么是这样的:

 "abc" + str(9) 

要么

 "abs{0}".format(9) 

要么

 "abs%d" % (9,) 

您必须将int转换为string:

 "abc" + str(9) 

像这样做:

 "abc%s" % 9 #or "abc" + str(9)