2014-02-22 40 views
1

我正在從官方文檔中閱讀python教程,並且遇到了這個 - >「在交互式解釋器中,輸出字符串用引號括起來,特殊字符用反斜槓轉義。並試了一下。交互式解釋器中的反斜槓

Output in Interpreter:

那麼,爲什麼它打印反斜線在第二輸出,同時它在第一輸出沒有?任何幫助將是appreciated.Thanks提前!

回答

1

當以這種方式顯示字符串時,如果其內容僅使用一種引用,則Python會使用另一種引用來環繞整個字符串,以使顯示更少混亂。你的第一個例子使用單引號(撇號),但沒有雙引號,所以Python能夠使用雙引號顯示它,而不必轉義任何東西。

你可以看到相反的行爲,如果你創建一個包含雙引號而不是單引號的字符串:

>>> 'a "quote" here' 
'a "quote" here' 

請注意,這裏的Python使用整個字符串周圍單引號。

在第二個示例中,您的字符串包含雙引號和單引號。這意味着一個或另一個必須被轉義,所以Python選擇(顯然是任意的)在整個字符串周圍使用單引號,並且轉義單引號。

+0

感謝您的快速響應,您知道哪些報價將被轉義嗎?:# –

+0

@PruthviRaj:如果兩個報價類型都出現在字符串中,Python總是會轉義單引號。不知道這是否是實際記錄的行爲,它只是它在我看來的樣子,是否有其重要的原因?這只是一個顯示問題;它不會影響字符串中的實際內容 – BrenBarn

+0

不,不存在理由很重要,但我只想清楚理解,非常感謝你CH! ;) –

0

字符串引號可以用反斜線轉義,但反斜線保留在字符串中;例如,r「\」「是由兩個字符組成的有效字符串文字:反斜槓和雙引號; r」\「不是有效的字符串文字

檢查this,因爲它可能也有幫助,前往2.4.1