關於Python的轉義字符,精華都在這裏

Python 中,我們有些特殊符號需要表示出來的時候我們就需要轉義字符了!
先舉個例子:

>>> print('/')
/

我們要打印一個 “斜槓”,很簡單吧!
但是你打印個 “反斜槓” 試試呢!

>>> print('\')
	  
SyntaxError: EOL while scanning string literal

哎呀!報錯啦!
這是爲什麼呢?
原因在於,Python 中 “反斜槓” 即 “ \ ” 就是用來轉意的,叫做 “轉義字符”!
大家可以這麼理解,原來這個單引號,並不會顯示出來,而是有專門的意義:表示引號內部的內容,都是字符串!(畫外音:我不是單引號,我是表示字符串的工具)
轉義字符的作用,就是把後面這半個單引號的這個功能去除,轉到原本的狀態!(畫外音:我變回單引號了)
看例子:
我們如果想要直接打印個單引號出來,那我用單引號把單引號框起來,是不行滴!

print(''')

那我用上轉義字符即可:

>>> print('\'')
	  
'

這樣第二個單引號就回歸了原本!

總結

符號 作用
\\ 把反斜槓的“轉義字符”作用去除,即變爲真正的反斜槓。顯示( \ )
\’ 把單引號的“表示字符串”作用去除。顯示( ’ )
\" 把雙引號的“表示字符串”作用去除。顯示( " )
\a 把 a 轉成“響鈴”(BEL)
\b 把 b 轉成“退格符”(BS)
\n 把 n 轉成“換行符”(LF)
\t 把 t 轉成“水平製表符”(TAB)
\v 把 v 轉成“垂直製表符”(VT)
\r 把 r 轉成“回車符”(CR)
\f 把 f 轉成“換頁符”(FF)
\0dd 把 dd 轉成“八進制”對應的ASCII碼
\xhh 把 hh 轉成“十六進制”對應的ASCII碼

前面三個就不用贅述了。
“響鈴” 那個其實一直沒搞清楚是做什麼用的,據說是讓主板上的蜂鳴器響,就象開機時的聲音,但是這有啥用呢?知道的朋友歡迎留言交流啊!

接下來的 “退格符” 是非常坑爹的東西,你如果直接在 IDLE 中嘗試,你會發現:

>>> print('aa\bkk')
aakk

???這玩意兒沒用啊!怎麼回事?
原來在 IDLE 中是顯示不出來 “退格符” 的,具體原因未知!又知道的朋友歡迎分享!

我是MAC系統,所以在終端中啓動Python才行:

# 首先打開終端,輸入 python3.7
# 然後就進入了 Python 的界面
>>> print('aa\bkk')
akk

終於看到 “退格符” 的效果了,內牛滿面!

下面幾個就很簡單了,直接演示案例:

>>> print('1\n2')
1
2
>>> print('1\t2')
1	2
>>> print('1\v2')
1

2
>>> print('1\r2')
1

2
>>> print('1\f2')
1

2

由於在 IDLE 中,垂直製表符,回車符,換頁符看起來是一樣的。


後面的轉碼會比較複雜,但實際使用中感覺也不是很常用。

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

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

  • 這裏還需要注意 Python 轉義字符只對 ASCII 編碼有效!對Unicode、GBK、Big5 等其它編碼(字符集)沒有對應功能。

來看具體案例吧:
字符 1、2、3、x、y、z 對應的 ASCII 碼的八進制形式分別是 61、62、63、170、171、172,十六進制形式分別是 31、32、33、78、79、7A。

>>> print('八進制:\061\062\063')
八進制:123
>>> print('十六進制:\x31\x32\x33\x78\x79\x7A')
十六進制:123xyz

轉義字符的實際應用大家有用過哪些?歡迎留言討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章