2015-02-12 71 views
0

我想我明白反斜槓,但我不明白這種行爲:爲什麼蟒蛇添加一個反斜槓到我

foo = '\t' 

給出了相同的字符串(即\t)當我在Python類型foo口譯員,而

bar = '\i' 

給出\\i。發生了什麼?我只想要\i,因爲我正在將它寫入一個.tex文件,然後我正在編譯這個文件,而這似乎弄亂了LaTeX命令。

編輯:它實際上是沒有這一點,是搞亂了我的乳膠,如下顯示

+1

給出?你打印?怎麼樣? – 2015-02-12 07:58:08

+0

好點,我的意思是當我在解釋器中鍵入變量(所以我想打電話打印) – funklute 2015-02-12 08:00:58

+3

@funklute它不完全是「打印」。 'print'給出對象的__str__'表示,直接輸入變量給出'__repr__'。 – 2015-02-12 08:01:46

回答

1

"\t"的答案是選項卡(一個字符),"\i"包含字符,其中第一個轉義由__repr__

In [51]: len("\t") 
Out[51]: 1 

In [52]: len("\i") 
Out[52]: 2 

編輯:如果你寫一個文件,你的輸出將被罰款。

with open("o.tex", "w") as o: 
    o.write(">>>\t|\i|\t<<<\n") 

o.tex內容屆時將

>>>  |\i| <<< 

你可以看到兩個選項卡\t爲空白,而所有其他字符原樣。

+0

這是有道理的。如果寫入文件對象,是否使用了__repr__?或__str__表示(如實際問題的評論中所述) – funklute 2015-02-12 08:03:59