Python中的轉(zhuǎn)義字符可以幫助我們?cè)谧址幚碇刑峁┨厥獾男枨螅鐡Q行、使用制表鍵、使用特殊符號(hào)等。但有時(shí),我們需要把字符串的內(nèi)容原樣輸出來,這時(shí)就需要特殊的處理方式了。
在Python字符串前使用字符 'r' 或 ‘R’ 可以實(shí)現(xiàn)這個(gè)需求,如:
str = r'Python/nJava'
像這種在字符串前端使用了 'r' 或 'R' 的字符串叫原生字符串。
原生字符串中的每個(gè)字符都表示它本身的含義。
如果讀者對(duì)于Python中的轉(zhuǎn)義字符不是很了解的話,可以看一下本站中的《Python中的轉(zhuǎn)義字符》這篇文章。
下面使用幾個(gè)例子來說明一下具體使用方法:
>>> s1="Python/nJava" # 不使用原生字符串
>>> print(s1)
Python
Java
>>> s1 #直接輸出,不使用print()函數(shù)
'Python/nJava'
>>> s2 = r"Python/Java"
>>> print(s2) # 使用print()函數(shù)輸出
Python/nJava
>>> s2 # 不使用print()函數(shù)直接輸出
'Python//nJava'
>>> s3 = R'I Love Python.' # 沒有使用轉(zhuǎn)義字符的字符串
>>> print(s3)
I Love Python
從上面的例子可以看出,在沒有使用 'r' 或 'R' 的字符串使用print()函數(shù)輸出時(shí),其會(huì)按照轉(zhuǎn)義字符的轉(zhuǎn)義進(jìn)行輸出,如果使用了 'r' 或 'R' ,則處于引號(hào)中的內(nèi)容就會(huì)原樣被輸出。
在上面的例子中,我們也注意到在 Python 控制臺(tái)中直接使用變量進(jìn)行輸出原生字符串時(shí),Python 給 '/' 又添加了一個(gè)'/',實(shí)際上表示對(duì) '/'的一個(gè)轉(zhuǎn)義,告訴用戶,這里有一個(gè) '/',而不是換行符'/n'。
在實(shí)際使用原生字符串時(shí),我們要注意合理處理字符串中的內(nèi)容,否則可能與你想表達(dá)的含義不同,如下面的例子:
>>> str1 = "Python /ada" # 不使用原生字符串會(huì)輸出與我們預(yù)期不同的內(nèi)容
>>> print(str1)
Python da
>>> str1 = r"Python /ada" # 使用后,輸出結(jié)果達(dá)到預(yù)期
>>> print(str1)
Python /ada
>>> str1 = 'y/x' #出報(bào)錯(cuò)
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 1-2: truncated /xXX escape
>>> str1 = r'y/x' #沒有問題
>>> str2 = '/' # 字符串就是個(gè) / ,但報(bào)錯(cuò)
SyntaxError: EOL while scanning string literal
>>> str2 = r'/' # 沒有問題
>>> str3 = '//' # 想輸出兩個(gè)/,然不是
>>> print(str3)
/
>>> str3 = r'//' # 這樣才能達(dá)到預(yù)期
>>> print(str3)
//
本文(完)
新聞熱點(diǎn)
疑難解答
圖片精選