对Python行为感到困惑。 考虑这些例子:
>>>a = "ww" "xx"
>>>print(a)
wwxx
>>>b = "yy" "xx"
>>>print(b)
yyxx
>>>c = a b
File "<stdin>", line 1
c = a b
^
SyntaxError: invalid syntax
我期待结果wwxxyyxx
。
但是语法错误。
它们之间是否有任何区别(字符串文字和字符串);两者都是str
类型。
答案 0 :(得分:7)
直接取自Python Docs Tutorial:
自动连接两个或多个彼此相邻的字符串文字(即引号之间的字符串文字)。
>>> 'Py' 'thon'
'Python'
这仅适用于两个文字,而不是变量或表达式:
>>> prefix = 'Py'
>>> prefix 'thon' # can't concatenate a variable and a string literal
...
SyntaxError: invalid syntax
>>> ('un' * 3) 'ium'
...
SyntaxError: invalid syntax
如果要连接变量或变量和文字,请使用
+
:
>>> prefix + 'thon'
'Python'
当您想要打破长字符串时,此功能特别有用:
>>> text = ('Put several strings within parentheses '
... 'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'
答案 1 :(得分:2)
语法my_string = "substring1" "substring2"
是my_string = "substring1" + "substring2"
的快捷方式(通常当您希望将字符串拆分为多行以使其更具可读性时)。如果使用变量而不是常量来执行此操作,则需要使用连接符号。
编辑:在上一次编辑中,您提到了字符串和字符串文字之间的区别。没错,它们是相同的数据类型。区别在于符号问题。文字是一个显式值(例如2是一个总是代表2的符号),而变量是一个没有明确表示其内部值的标签(例如a可能是2或32)。
在你的情况下,&#34; xx&#34;永远是&#34; xx&#34; (字面意思)在执行脚本期间,变量a可以采用不同的值(变量)。