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

54 投票
7 回答
165870 浏览
提问于 2025-04-16 23:07

我在用Python的时候,想把一个字符串和一个数字拼接在一起。可是当我这样做的时候,出现了错误:

"abc" + 9

错误信息是:

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

为什么我不能这样做呢?

我该怎么才能在Python中把字符串和数字拼接在一起呢?

7 个回答

15

因为Python是一种强类型语言,所以把字符串和整数拼接在一起是没有意义的,就像在Perl中那样,因为没有明确的方法可以把字符串和数字“加”在一起。

明确比隐含更好。

...这就是“Python之禅”所说的,所以你必须把两个字符串对象拼接在一起。你可以通过使用内置的str()函数把整数转换成字符串来做到这一点:

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

另外,你也可以使用Python的字符串格式化操作

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

或许更好的方法是使用str.format()

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

“Python之禅”还说:

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

这就是我给出三种选择的原因。

29

如果它按照你预期的方式工作(得到 "abc9"),那么 "9" + 9 会得到什么呢?是 18 还是 "99" 呢?

为了消除这种不确定性,你需要明确说明你想要转换的内容:

"abc" + str(9)
96

Python是一种强类型的编程语言。这意味着在Python中,数据类型是非常严格的,不会自动进行类型转换。

你必须手动进行以下操作之一:

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

撰写回答