亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中的反斜杠問題深入講解

 更新時間:2019年08月12日 09:56:41   作者:苦行僧95  
這篇文章主要給大家介紹了關(guān)于python中反斜杠問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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í)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論