轉(zhuǎn)義字符
轉(zhuǎn)義字符 \
本身不被當(dāng)作字符,如果要表示一個(gè)字符 \
薄湿,需要自己將自己轉(zhuǎn)義:
'\\'
'\\'
'\'
File "<ipython-input-2-d44a383620ab>", line 1
'\'
^
SyntaxError: EOL while scanning string literal
上面這一行報(bào)錯(cuò)信息是 SyntaxError: EOL while scanning string literal。這是因?yàn)?\'
表示的是單引號(hào)字符 '
(Literal)—— 是可被輸出到屏幕的 '
,而不是用來標(biāo)示字符串的那個(gè) '
—— 別急,無論哪個(gè)初學(xué)者第一次讀到前面的句子都覺得有點(diǎn)莫名其妙…… —— 于是指煎,Python 編譯器掃描這個(gè) “字符串” 的時(shí)候,還沒找到標(biāo)示字符串末尾的另外一個(gè) '
的時(shí)候就讀到了 EOL(End Of Line)便斥。
如果你想輸出這么個(gè)字符串至壤,He said, it's fine.,如果用雙引號(hào)擴(kuò)起來 "
倒沒啥問題枢纠,但是如果用單引號(hào)擴(kuò)起來就麻煩了像街,因?yàn)榫幾g器會(huì)把 it 后面的那個(gè)單引號(hào) '
當(dāng)作字符串結(jié)尾。
'He said, it's fine.'
File "<ipython-input-3-2bcf2ca6dd95>", line 1
'He said, it's fine.'
^
SyntaxError: invalid syntax
于是你就得用轉(zhuǎn)義符 \
:
# 要么你這么寫:
print('He said, it\'s fine.')
# 要么你這么寫:
print("He said, it's fine.")
# 要么晋渺,不管用單引號(hào)還是雙引號(hào)標(biāo)示字符串镰绎,
# 都習(xí)慣于用 \' 和 \" 書寫屬于字符串內(nèi)部的引號(hào)……
"He said, it\'s fine."
He said, it's fine.
He said, it's fine.
"He said, it's fine."
轉(zhuǎn)義字符 \
可與其他字符組合成有特殊含義的字符:
轉(zhuǎn)義字符 | 說明 |
---|---|
\(在行尾時(shí)) |
續(xù)行符 |
\\ |
反斜杠符號(hào) |
\' |
單引號(hào) |
\" |
雙引號(hào) |
\a |
響鈴 |
\b |
退格 |
\n |
換行 |
\v |
縱向制表符 |
\t |
橫向制表符 |
\r |
回車 |
\f |
換頁 |
\yy |
八進(jìn)制數(shù) yy 碼位的字符 |
\xyy |
十六進(jìn)制數(shù) yy 碼位的字符 |
續(xù)航符,可以將兩行代碼(或字符串)連接起來木西,表示一行:
for i in \
range(3): # 兩行相當(dāng)于 for i in range(10):
print(i)
0
1
2
'hello \
world'
'hello world'
八進(jìn)制和十六進(jìn)制字符舉例:
# 八進(jìn)制字符
'\101', '\102'
('A', 'B')
# 十六進(jìn)制字符
'\x41', '\x42'
('A', 'B')
# 十進(jìn)制
chr(65),chr(66)
('A', 'B')
在正則表達(dá)式中畴栖,轉(zhuǎn)義字符 \
的應(yīng)用更加普遍。詳情請看《正則指引》八千。