2011-07-28 13 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] 
'\\' 

ご覧のとおり、これは2文字ではなく1文字です。

それをINGのprintを試してみてください。結果はのみ表示され

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

を以下のようにしてみてください? –

+1

@arxanas:それはREPLに関してそれほど重要ではなく、REPLはあなたが入力したステートメントの結果であるオブジェクト( 'None'を除く)を印刷するのに' repr'を使用します。また、文字列の 'repr'は文字列リテラルであり、Python式として評価された場合、同じ文字列を返します。 – delnan

2

このようREPL行為をしたときに、 だから、

a = 'asdf hjkl'.replace(' ','\s') 
print a 
関連する問題