Skip to main content
 首页 » 编程设计

Python 三重字符串引号声明

2025年05月04日15thcjp

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

str="""jeff""" 
str=""""jeff""" 
str=""""jeff""""   # error 
str=""""jeff """" 

第三个是错误的,谁能解释为什么这是错误的?

请您参考如下方法:

三个引号结束一个字符串,所以这个

str=""""jeff"""" 

解析为:

str= """ ("jeff) """ (") 

尾随引号是问题所在。

顺便说一句,看着 BNF definition

longstring      ::=  "'''" longstringitem* "'''" 
                     | '"""' longstringitem* '"""' 

很明显,星号 * 是非贪婪的,但我不知道这是否记录在某处。

为了回应评论,这

 str = ''''''''jeff''' 

被解释为

(''')(''')('')(jeff)(''') <-- error, two quotes 

还有这个

 str = '''''''''jeff''' 

被解释为

 str = (''')(''')(''')(jeff)(''') <-- no error, empty string + jeff