通过将元素放在括号内来创建字符串

时间:2017-01-07 03:14:01

标签: python

这些用于通过分别定义字符串来创建字符串:

str1 = ("a" "b")
# str1 = 'ab'

str2 = ("d"+str1)
# str2 = 'dab'

str3 = ("d" "e" "f")
# str3 = 'def'

但是这个失败了。为什么这样?

str3 = ("d"+str1 "e")
# SyntaxError: invalid syntax

围绕它的工作是什么?

2 个答案:

答案 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

The Python Tutorial

更清晰: enter image description here