關于Python反斜杠的那些事
今天一位博友評論問到了關于反斜杠的問題,在此寫篇小短文總結一下,如有疏漏或錯誤,歡迎和感謝各位前輩和同學指出,更具體的關于轉義字符的知識詳見于Python入門基礎語法1,好啦,打起精神,下面我們開始進入正題,
首薦原字符
原字符就是希望字串中的轉義字符不起作用,他可以減輕我們的勞動量:可以少寫很多反斜線(轉義符號),在Python入門基礎語法1中寫道:使用原字符最后一個字符不能是反斜杠\, 但是代碼中有個結尾是兩個\,其實它并不是不能用反斜線結尾,只是不能以奇數個反斜線(\)結尾;
使用原字符可以少寫很多反斜線見如下代碼;
# 開發時間:2020/11/2 13:10
# 字串
a = ('E:\\inventor\\安裝包\\3rdParty')
# 原字符
b = (r'E:\inventor\安裝包\3rdParty')
print(a)
print(b)
運行結果如下:
E:\Python\python.exe E:/py/CSDN博客/關于反斜線那些事.py
E:\inventor\安裝包\3rdParty
E:\inventor\安裝包\3rdParty
Process finished with exit code 0
—注意—
可能有人發下如果只輸入一個(\)的輸出可能結果是一樣的,但是我們要理解這個概念:(\)是轉義字符 (\\)表示一個普通的\號…你可能會遇到輸入一個(\)也沒有報錯,也是自己想要的輸出結果,那其實是因為沒有遇到有意義的轉義字母,具體見如下代碼:
# 這兩個運行結果是一樣的是因為\w不是一個有效的轉義字符
print('http:\www.baidu.com') # 只有一個\,\是轉義字符 \w不是一個有效的轉義字符,所以作為普通字符輸出了
print('http:\\www.baidu.com') # \\表示一個普通的\號
# 當轉義字符\后面的是有意義的轉義功能的時候就會出現問題
print('E:\3rdParty') # E:rdParty輸出結果和想要的不一樣
print('E:\n.txt') # 這種就是轉義字符后面遇到了有意義的轉移功能 \n 就是換行的意思
print('E:\\3rdParty')
運行結果如下:
E:\Python\python.exe E:/py/CSDN博客/關于反斜線那些事.py
http:\www.baidu.com
http:\www.baidu.com
E:rdParty
E:
.txt
E:\3rdParty
Process finished with exit code 0
這也就是為什么比較推薦原字符了,不僅可以減少作業量,還可以避免忘記輸 (\\)而報錯了,詳見下述代碼(可與上述對比):
print(r'http:\www.baidu.com')
print(r'E:\3rdParty')
print(r'E:\n.txt')
運行結果如下:
E:\Python\python.exe E:/py/CSDN博客/關于反斜線那些事.py
http:\www.baidu.com
E:\3rdParty
E:\n.txt
Process finished with exit code 0
對于路徑的表達,\還是/
在Python中輸出路徑的時候,我們有三種方法: 【直接使用轉義字符\\】、【使用原字符】 【使用/】具體代碼如下:
print('E:\\inventor\\安裝包\\3rdParty') # \\表示一個普通的\號,第一個\是轉義字符
print(r'E:\inventor\安裝包\3rdParty') # 原字符就是希望字串中的轉義字符不起作用
print('E:/inventor/安裝包/3rdParty') # 直接用正斜杠(/)表示路徑,沒有轉義的誤解
# Windows中,正反斜杠二者皆可表示路徑,但是默認的是\做分隔符,如"C:\Windows\Python",
運行結果如下:
E:\inventor\安裝包\3rdParty
E:\inventor\安裝包\3rdParty
E:/inventor/安裝包/3rdParty
Process finished with exit code 0
好啦,暫時想到和整理的就這么多啦,可能不太完整,有些地方可能也有些紕漏,還望各位多多指教, 【十分感謝各位支持我的前輩和同學,一起學習和進步吧】?( ′・?・` )
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/202097.html
標籤:其他
