天天看點

Python 轉義字元(含用法)

文章目錄

在 《Python字元串》 一節中我們曾提到過轉義字元,就是那些以反斜杠\開頭的字元。

ASCII 編碼為每個字元都配置設定了唯一的編号,稱為編碼值。在 Python 中,一個 ASCII 字元除了可以用它的實體(也就是真正的字元)表示,還可以用它的編碼值表示。這種使用編碼值來間接地表示字元的方式稱為轉義字元(Escape Character)。

轉義字元以\0或者\x開頭,以\0開頭表示後跟八進制形式的編碼值,以\x開頭表示後跟十六進制形式的編碼值,Python 中的轉義字元隻能使用八進制或者十六進制。具體格式如下:

\0dd

\xhh

dd 表示八進制數字,hh 表示十六進制數字。

ASCII 編碼共收錄了 128 個字元,\0和\x後面最多隻能跟兩位數字,是以八進制形式\0并不能表示所有的 ASCII 字元,隻有十六進制形式\x才能表示所有 ASCII 字元。

我們一直在說 ASCII 編碼,沒有提及 Unicode、GBK、Big5 等其它編碼(字元集),是因為 Python 轉義字元隻對 ASCII 編碼(128 個字元)有效,超出範圍的行為是不确定的。

字元 1、2、3、x、y、z 對應的 ASCII 碼的八進制形式分别是 61、62、63、170、171、172,十六進制形式分别是 31、32、33、78、79、7A。下面的例子示範了轉義字元的用法:

str1 = "Oct: \061\062\063"
str2 = "Hex: \x31\x32\x33\x78\x79\x7A"
print(str1)
print(str2)
           

運作結果:

Oct: 123

Hex: 123xyz

注意,使用八進制形式的轉義字元沒法表示 xyz,因為它們的編碼值轉換成八進制以後有三位。

對于 ASCII 編碼,0~31(十進制)範圍内的字元為控制字元,它們都是看不見的,不能在顯示器上顯示,甚至無法從鍵盤輸入,隻能用轉義字元的形式來表示。不過,直接使用 ASCII 碼記憶不友善,也不容易了解,是以,針對常用的控制字元,C語言又定義了簡寫方式,完整的清單如下。

Python 轉義字元(含用法)

轉義字元在書寫形式上由多個字元組成,但 Python 将它們看作是一個整體,表示一個字元。

Python 轉義字元綜合示例:

#使用\t排版
    str1 = '網站\t\t域名\t\t\t年齡\t\t價值'
    str2 = 'C語言中文網\tc.biancheng.net\t\t8\t\t500W'
    str3 = '百度\t\twww.baidu.com\t\t20\t\t500000W'
    print(str1)
    print(str2)
    print(str3)
    print("--------------------")
    # \n在輸出時換行,\在書寫字元串時換行
    info = "Python教程:http://c.biancheng.net/python/\n\
    C++教程:http://c.biancheng.net/cplus/\n\
    Linux教程:http://c.biancheng.net/linux_tutorial/"
    print(info)
           

運作結果:

網站        域名                年齡    價值
C語言中文網 c.biancheng.net     8       500W
百度        www.baidu.com       20      500000W
--------------------
Python教程:http://c.biancheng.net/python/
C++教程:http://c.biancheng.net/cplus/
Linux教程:http://c.biancheng.net/linux_tutorial/