我用三串以下列方式:Python的三重串報價申報
str="""jeff"""
str=""""jeff"""
str=""""jeff"""" # error
str=""""jeff """"
第三個是錯誤,任何人都可以解釋爲什麼這是錯誤?
我用三串以下列方式:Python的三重串報價申報
str="""jeff"""
str=""""jeff"""
str=""""jeff"""" # error
str=""""jeff """"
第三個是錯誤,任何人都可以解釋爲什麼這是錯誤?
三個引號終止字符串,因此該
str=""""jeff""""
被解析爲這樣的:
str= """ ("jeff) """ (")
尾隨報價是問題。
BTW,看着BNF definition
longstring ::= "'''" longstringitem* "'''"
| '"""' longstringitem* '"""'
很明顯,明星*
是不貪心,我不知道,雖然如果這是什麼地方記錄。
響應於該評論,這
str = ''''''''jeff'''
被解釋爲
(''')(''')('')(jeff)(''') <-- error, two quotes
這
str = '''''''''jeff'''
被解釋爲
str = (''')(''')(''')(jeff)(''') <-- no error, empty string + jeff
只能使用3個引號。
第二字符串被解釋爲:「傑夫
第三字符串被解釋爲:」傑夫,後跟一個雜散報價。
STR = 「」 「傑夫」 「」 - > STR '傑夫'
STR = 「」 「」 傑夫 「」」 - >多STR '傑夫'
STR = 「」 「」 jeff「」「」#error - >這裏parser認爲你聲明「」,「」,jeff,「」,「」
str =「」「」jeff「」「」#error - > same作爲前一個
>>> """"a""""
File "<stdin>", line 1
""""a""""
^
SyntaxError: EOL while scanning string literal
>>> """"a """"
File "<stdin>", line 1
""""a """"
^
SyntaxError: EOL while scanning string literal
爲了避免它不喜歡這個 「」 「\」 A \ 「」 「」
此外,作爲tng345提到的,你可以看看在BNF
什麼在這種情況下發生的'海峽=「」「」「」「」傑夫「」'',它只有3結尾的引號,仍然錯誤 – avasal 2012-02-15 08:41:25
@avasal:嘗試添加一個;)。查看更新 – georg 2012-02-15 08:47:41