2017-05-26 122 views
2

與Python行爲混淆。 考慮這些例子:引號內的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類型。

回答

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

語法my_string = "substring1" "substring2"my_string = "substring1" + "substring2"快捷方式(通常當你要分割在以多行字符串使其更具可讀性)。如果你用變量而不是常量來做,你需要使用連接符號。

編輯:在你最後的編輯中,你提到了字符串和字符串之間的區別。確實,它們是相同的數據類型。區別是符號的問題。文字是明確的值(例如,2是總是代表2的符號),而變量是不明確指示其內部值的標籤(例如,可以是2或32)。

在你的情況下,「xx」將始終爲「xx」(文字),而在執行腳本期間,變量a可能會採用不同的值(變量)。