我怎样才能连接在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)