如何在Python中连接字符串和数字?
我在用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)