Python三重字符串引用声明

zjf*_*fdu 1 python string

我用以下方式使用三重字符串:

str="""jeff"""
str=""""jeff"""
str=""""jeff""""   # error
str=""""jeff """"
Run Code Online (Sandbox Code Playgroud)

第三个是错误,任何人都可以解释为什么这是错误?

geo*_*org 6

三个引号终止一个字符串,所以这个

str=""""jeff""""
Run Code Online (Sandbox Code Playgroud)

被解析为:

str= """ ("jeff) """ (")
Run Code Online (Sandbox Code Playgroud)

尾随引用是问题所在.

BTW,看看BNF的定义

longstring      ::=  "'''" longstringitem* "'''"
                     | '"""' longstringitem* '"""'
Run Code Online (Sandbox Code Playgroud)

很明显,这颗恒星*是非贪婪的,我不知道这是否记录在某处.

在回应评论时,这个

 str = ''''''''jeff'''
Run Code Online (Sandbox Code Playgroud)

被解释为

(''')(''')('')(jeff)(''') <-- error, two quotes
Run Code Online (Sandbox Code Playgroud)

还有这个

 str = '''''''''jeff'''
Run Code Online (Sandbox Code Playgroud)

被解释为

 str = (''')(''')(''')(jeff)(''') <-- no error, empty string + jeff
Run Code Online (Sandbox Code Playgroud)