r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串 ,为什么多行字符串前加raw字符串多行字符串中的''和""能显示出来呢?
r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''
r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''
2015-01-10
但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串(为什么?)
为什么不能表示多行字符串?
多行字符串肯定包含 \n , 但r'...' 里面的字符不需要转义, 就是说 \ 只是普通的斜杠 ,可看下图:
所以 r'...' 并不能表示出 多行字符串 的效果.
为什么不能表示包含 ' 和 " 的字符串?
情况一. ' 和" 同时存在:
>>> print r'Python is created by "Guido". Let's start learn Python in imooc!'
File "<stdin>", line 1
print r'Python is created by "Guido". Let's start learn Python in imooc!'
^
SyntaxError: invalid syntax
######### r'...'里面同时出现 ' 和 " 报错, 因为包含 ' 和 " 的会分不清;
情况二 . 只有 "
>>> print r'python is created by "Guido".'
python is created by "Guido".
######### 输出正常, 原因同 表示具有' 的字符串时用" 引起来;
情况三 . 只有 '
>>> print r'Let's start learn Python in imooc!'
File "<stdin>", line 1
print r'Let's start learn Python in imooc!'
^
SyntaxError: invalid syntax
>>>
######### 报错 , 原因 r 的第一个 ' 和 Let' 的 ' 匹配了.
故.(以上个人理解,欢迎大家讨论~)
举报