對於Python中RawString的理解

2016年1月9日code

總結

一、'''做用: 能夠表示 "多行註釋" 、"多行字符串" 、"其內的單雙引號不轉義"

二、r 表明的意思是: raw 

三、r 只對其內的反斜槓起做用(注意單個 \ 的問題)

raw string 有什麼用處呢? raw string 就是會自動將反斜槓轉義。字符串

>>> print('\n')
    
    
    >>> print(r'\n')
    \n
    >>>

(注:出現了兩個空行是由於 print() 會自動添加一個空行)string

再舉個例子:編譯

>>> r'\\\\\\' == '\\\\\\\\\\\\'
    True
    >>> print('\\\\\\\\\\\\')
    \\\\\\
    >>> print(r'\\\\\\')
    \\\\\\
    >>>

上述就是raw string 的基本功能。總結


所謂的註釋

print(r'''1
2
3
4''')

co

print('''1
2
3
4''')

效果同樣的緣由其實就在於
三引號內沒有 \ 因此 r 英雄無用武之地block

有一點要注意的是,raw string 並不能讓諸如 print(r'\') 起做用。由於在編譯時Python仍是會嘗試使用反斜槓來轉義單引號,從而形成字符串沒有終止的問題.字符

舉例:

>>> print(r'C:\Windows\System32')
    C:\Windows\System32

    >>> print('C:\\Windows\\System32')
    C:\Windows\System32

    >>> print('C:\Windows\System32')
    C:\Windows\System32
    >>>

最後一行也能夠生效的緣由是,\W\S 什麼都不是。因此在這個例子中Python發現「沒法轉義」,因此就不作任何轉義而直接打印轉義符。可是:new

>>> print('C:\Windows\System32\new')
    C:\Windows\System32
    ew

    >>> print(r'C:\Windows\System32\new')
    C:\Windows\System32\new

就不同了。

相關文章
相關標籤/搜索