这些用于通过分别定义字符串来创建字符串:
str1 = ("a" "b")
# str1 = 'ab'
str2 = ("d"+str1)
# str2 = 'dab'
str3 = ("d" "e" "f")
# str3 = 'def'
但是这个失败了。为什么这样?
str3 = ("d"+str1 "e")
# SyntaxError: invalid syntax
围绕它的工作是什么?
答案 0 :(得分:3)
你正在混合两种不同的东西。 ("a" "b")
看起来像这两个字符串,但它实际上只有一个字符串;由空格分隔的字符串文字会自动连接到单个字符串。与使用("ab")
完全相同。
另一方面,您可以添加两个不同的字符串来创建一个新的单个字符串。那是("d"+str1)
发生的事情。
第一个示例中的技巧仅适用于字符串文字,而不适用于变量或更复杂的表达式。所以("d"+str1 "e")
不起作用。您需要("d"+str1+"e")
,这是两个补充。
P.S。括号是可选的,它们只是将不需要任何其他分组的操作组合在一起。
答案 1 :(得分:1)
自动连接两个彼此相邻的字符串文字; 这仅适用于两个文字,而不是任意字符串表达式:
>>> 'str' 'ing' # <- This is ok
'string'
>>> 'str'.strip() + 'ing' # <- This is ok
'string'
>>> 'str'.strip() 'ing' # <- This is invalid
File "<stdin>", line 1, in ?
'str'.strip() 'ing'
^
SyntaxError: invalid syntax