引号内的Python字符串赋值

时间:2017-05-26 12:40:21

标签: python string

对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类型。

2 个答案:

答案 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可以采用不同的值(变量)。