2013-08-01 77 views
2

我的印象是,在Python中原始字符串,寫爲r'this is a raw string'將省略任何轉義字符,並且正確地打印引號之間的內容。我的問題是,當我嘗試print r'\'我得到SyntaxError: EOL while scanning string literal。但是,print r'\n'正確打印\n在原始Python字符串中轉義字符

+0

啊,是的,這是...... –

回答

4

引用the documentation

'r''R'前綴存在時,以下反斜槓一個字符包含不變化的串中,且所有反斜槓留在的字符串中。例如,字符串文字r"\n"由兩個字符組成:反斜槓和小寫'n'字符串引號可以使用反斜槓進行轉義,但反斜槓保留在字符串;例如,r"\""是由兩個字符組成的有效字符串文字:反斜槓和雙引號; r"\"不是有效的字符串字面值(即使原始字符串不能以奇數個反斜槓結尾)。具體而言,原始字符串不能以單個反斜槓結尾(因爲反斜槓會轉義下面的引號字符)。

增加了我的重點。

因此,原始字符串會將的某些的含義附加到反斜槓,但僅限於涉及引號的位置。

1

從Python文檔:

如果我們使字符串文字「原始」的字符串,\ n鏈段不被轉換爲換行,但反斜槓在該行的末尾,和換行字符在源中,都作爲數據包含在字符串中。

你對原始字符串有錯誤的想法。