python字符串的轉義注意點

       python字符串對象對於某些字符定義了轉義特性,以反斜槓\作爲轉義標誌。當python解釋器對字符串對象做處理時,要記住首先始終是要對字符串做轉義處理的。

       在理解python字符串的轉義時,需要注意兩個概念,分別是轉義前字符串和轉義後字符串。一般情況下,直接和用戶交互的應該是轉義後字符串,這也是我們通常所正常理解的不需要轉義知識的字符,即一個反斜槓就是\,而不是轉義前的\\;但是在python解釋器中,都默認把字符串對象當作是轉義前字符串,然後先會對其轉義,所以我們在寫代碼過程中,腳本中遇到的字符串對象都屬於轉義前字符串,而對於打印輸出以及文本寫入後的這些和用戶直接交互的字符串都是經過解釋器處理的轉以後的字符串。

       所以,在腳本中定義字符串的時候,爲了讓解釋器對字符串轉義後得到我們預期的字符串,我們往往會通過原生字符串類型來定義字符串,避免自己根據轉義來定義字符串,比如r'\n'得到的轉義前字符串對象便是'\\n',所以解釋器再對r'\n'轉義後得到的就是我們預期的\n,而不是換行符;但是要注意這裏無法直接通過r'\'得到轉義後的'\',這是因爲'\'本身是一個不合法的字符串表達,由於轉義符對'進行了轉義,所以'\'也就不是一個合法的字符串參數被用以原生的轉化,這是一個在使用原生字符串時需要注意的例外。所以如果我們想要得到轉義後的'\',那麼我們只能通過在腳本中定義轉義前字符串'\\'得到。

       最後我們要知道,對於跟用戶直接交互的字符串輸入和輸出,python都會認爲其是轉以後字符串,所以在程序中,都會以其爲轉義後字符串的標準進行轉換,得到解釋器中轉義前字符串對象。比如,對於文本讀入,如果文本中的內容是\n,那麼在讀入程序中,在解釋器中,其會被自動轉爲\\n,這樣轉義後纔是原本的\n;同樣的,當我們在腳本外以字符串作爲參數傳入腳本中時,也會進行這樣的自動轉換,默認輸入的是轉義後的字符串,經過轉化後得到解釋器中的轉義前字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章