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
舉報
2017-09-16
字符串有兩種表示方法,一種是'? '引起來的,另一種是“? ”引起來的,在'? '中不可再出現 ' ;同理,“? ”中也不可再包含 ”,因為程序無法分清你的單引號或者是雙引號與后邊的哪個單引號或雙引號去結合,從而報錯??赡軟]說清楚,見諒?
2016-05-07
但是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' 的 ' 匹配了.
故.(以上個人理解,歡迎大家討論~)
2015-03-14
print可以打印字符串,加不加r都是字符串(row字符串不是字符串?同樣的多行字符串就不是字符串?),所以都是可以打印的。然后至于不能表示包含'和"的字符串貌似說得太過絕對。有這么一個區別,row字符串中的\就是一個反斜線,而一般字符串中反斜線一般和其后的字符構成轉義字符。
2015-02-08
其實我試了下,在'''前不加r也能顯示"",不知道問什么