python中的反斜杠問題深入講解
前言
python本身使用 \ 來轉(zhuǎn)義一些特殊字符,比如在字符串中加入引號的時候
s = 'i\'m superman' print(s) # i'm superman
為了防止和字符串本身的引號沖突,使用 \ 來轉(zhuǎn)義,一般情況下這個也不會引起什么問題,但是當(dāng)你要使用 \ 來轉(zhuǎn)義 \ 的時候,就比較混亂了,比如我們想要輸出一個 \ ,得寫兩個 \ ,否則會報語法錯誤,因為 \ 把后面的引號給轉(zhuǎn)義了,必須使用 \
# 錯誤寫法
# print '\'
# 正確寫法
print('\\') # \
# 原生字符串
print(r'\\') # \\
將 \ 轉(zhuǎn)義一下使其不具備轉(zhuǎn)義功能,才可以正確輸出,當(dāng)使用原生字符串的時候,輸出顯示了兩個 \ ,看起來好像是寫幾個輸出幾個的樣子,如果這樣想的話,你可以試一下,看能不能輸出奇數(shù)個 \。
補充——————————————————
python的原生字符串不能以反斜杠結(jié)尾的問題
Python的原生字符串(raw string)是個很有用的東西,可以少寫很多反斜線(轉(zhuǎn)義符號)。
不過它有個著名的bug,就是不能以反斜線結(jié)尾,這讓人很無語。今天突然發(fā)現(xiàn)General Python FAQ里有進行說明,并給出了解決辦法。
首先要澄清的是不是不能以反斜線結(jié)尾,而是不能以奇數(shù)個反斜線結(jié)尾。
其次,這個bug的原因是一些處理器(例如主要的正則表達(dá)式引擎)希望進行它們自己的反斜線轉(zhuǎn)義處理,而這些處理器不允許字符串以未匹配的反斜線結(jié)尾。
最后,解決辦法就是把反斜線放在另一個字符串里,Python會自動進行合并:
dir = r"\this\is\my\dos\dir" "\\"
補充結(jié)束——————————————————
雖然原生字符串不是很完美,但是它已經(jīng)可以幫我們解決很大一部分的問題了。比如當(dāng)你想匹配"\"的時候,原生字符串可以讓你至少少寫一半的\,即節(jié)省代碼量,又增加了可讀性。
import re
_string = '\\\\'
print(_string) # \\
# 字符串
for i in re.findall('\\\\', _string):
print(i)
# \
# \
# 原生字符串
for i in re.findall(r'\\', _string):
print(i)
# \
# \
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
- python中路徑字符串斜杠替換方式
- python指定路徑斜杠與反斜杠遇到的問題
- python中的正斜杠與反斜杠實例驗證
- python使用正則表達(dá)式匹配反斜杠\遇到的問題
- 一篇文章搞懂Python反斜杠的相關(guān)問題
- python正則表達(dá)式 匹配反斜杠的操作方法
- python如何輸出反斜杠
- Python字符串和正則表達(dá)式中的反斜杠(''\'')問題詳解
- Python中正反斜杠(‘/’和‘\’)的意義與用法
- 解決Python正則表達(dá)式匹配反斜杠''''\''''問題
- Python3.6-MySql中插入文件路徑,丟失反斜杠的解決方法
- 一文詳細(xì)介紹Python兩條斜杠 // 的作用和用法
相關(guān)文章
win10系統(tǒng)下python3安裝及pip換源和使用教程
這篇文章主要介紹了win10系統(tǒng)下python3安裝及pip換源和使用教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
python 列表輸出重復(fù)值以及對應(yīng)的角標(biāo)方法
今天小編就為大家分享一篇python 列表輸出重復(fù)值以及對應(yīng)的角標(biāo)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python使用tkinter打造三維繪圖系統(tǒng)的示例代碼
Python?的?tkinter?模塊是一個常用的?GUI(圖形用戶界面)工具包,它能夠讓你創(chuàng)建窗口應(yīng)用程序,你可以使用它來構(gòu)建用戶友好的界面,包括按鈕、標(biāo)簽、文本框、列表框等各種控件,本文講給大家介紹如何使用tkinter打造三維繪圖系統(tǒng),需要的朋友可以參考下2023-08-08
Python openpyxl庫處理Excel文件高級應(yīng)用技巧實例
openpyxl是一個用于處理Excel文件的Python庫,它提供了豐富的功能,使得用戶能夠輕松地讀取、寫入和操作Excel文件,而不需要依賴于Microsoft Excel軟件,作為一個開源項目,openpyxl在Python生態(tài)系統(tǒng)中得到了廣泛的應(yīng)用,成為處理Excel數(shù)據(jù)的首選工具之一2024-01-01

