如何在Python中连接字符串和数字?

NOO*_*OOB 45 python

我试图在Python中连接字符串和数字.当我尝试这个时它给了我一个错误:

"abc" + 9
Run Code Online (Sandbox Code Playgroud)

错误是:

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

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

如何可以我将字符串和Python中的号码是多少?

Joc*_*zel 80

Python是强类型的.没有隐式类型转换.

你必须做其中一个:

"asd%d" % 9
"asd" + str(9)
Run Code Online (Sandbox Code Playgroud)


vst*_*ien 28

如果它按照你预期的方式工作(产生"abc9"),会带来什么"9" + 918还是"99"

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

"abc" + str(9)
Run Code Online (Sandbox Code Playgroud)


Joh*_*web 12

由于Python是一种强类型语言,因此在Perl中连接字符串和整数是没有意义的,因为没有定义的方法来相互"添加"字符串和数字.

显式优于隐式.

...说"Python的禅",所以你必须连接两个字符串对象.您可以使用内置str()函数从整数创建一个字符串来完成此操作:

>>> "abc" + str(9)
'abc9'
Run Code Online (Sandbox Code Playgroud)

或者使用Python的字符串格式化操作:

>>> 'abc%d' % 9
'abc9'
Run Code Online (Sandbox Code Playgroud)

或许更好,使用str.format():

>>> 'abc{0}'.format(9)
'abc9'
Run Code Online (Sandbox Code Playgroud)

禅还说:

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

这就是为什么我给出了三个选择.它继续说......

虽然这种方式起初可能并不明显,除非你是荷兰人.

  • +1推荐`str.format` (3认同)