2011-07-28 66 views
1

我試圖用「\ s」(文字\ s,而不是某種反斜槓轉義)來簡單替換「」。這就是我認爲應該發生:用Python中的反斜槓替換字符串

>>> 'asdf hjkl'.replace(' ', '\s') 
'asdf\shjkl' 

我這樣做:

>>> 'asdf hjkl'.replace(' ', '\s') 
'asdf\\shjkl' 
>>> 'asdf hjkl'.replace(' ', '\\s') 
'asdf\\shjkl' 

也不返回我的預期,我不能爲我的生命明白髮生了什麼事情。我必須使用什麼輸入才能獲得預期的輸出?

回答

3

你得到你想要的。它只是不看在REPL這樣:

>>> 'asdf hjkl'.replace(' ', '\s')[4] 
'\\' 

正如你所看到的,這是一個字符,而不是兩個。

嘗試print荷蘭國際集團它:

>>> print 'asdf hjkl'.replace(' ', '\s') 
asdf\shjkl 
+0

所以,當確實的REPL行爲也是這樣嗎? –

+1

@arxanas:與REPL沒有多大關係,REPL只是使用'repr'來打印輸入語句所產生的對象(「None」除外)。而一個字符串的'repr'是一個字符串字面值,當它作爲Python表達式計算時,會給出相同的字符串。 – delnan

2

結果僅顯示, 嘗試以下方法,

a = 'asdf hjkl'.replace(' ','\s') 
print a