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語言又定義了簡寫方式,完整的列表如下。
轉義字符 | 說明 |
---|---|
\n | 換行符,將光標位置移到下一行開頭。 |
\r | 回車符,將光標位置移到本行開頭。 |
\t | 水平製表符,也即 Tab 鍵,一般相當於四個空格。 |
\a | 蜂鳴器響鈴。注意不是喇叭發聲,現在的計算機很多都不帶蜂鳴器了,所以響鈴不一定有效。 |
\b | 退格(Backspace),將光標位置移到前一列。 |
\\ | 反斜線 |
\' | 單引號 |
\" | 雙引號 |
\ | 在字符串行尾的續行符,即一行未完,轉到下一行繼續寫。 |
轉義字符在書寫形式上由多個字符組成,但 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)