2012-03-21 15 views
0

私は、文字列にPythonの文字列リテラルとエスケープシーケンス

' "いいえ、おかげで、お母さんは、" 私が言った、 "私はそれがかかりますどのくらいかわからない。"'

Iを持っています変数foobarに

>>> foobar = """'"No, thanks, Mom," I said, "I don't know how long it will take."'""" 

に割り当てるしかし、私は

>>> foobar 
'\'"No, thanks, Mom," I said, "I don\'t know how long it will take."\'' 
>>> 

Hを取得する印刷するとき私はそれを割り当てたのと同じ文字列の値を正確に表示できますか?

+0

'foobarを印刷するとどうなるのですか? – tMC

答えて

2

、文字列を印刷する使用... printするには:あなただけfoobarを入力した場合

>>> foobar = """'"No, thanks, Mom," I said, "I don't know how long it will take."'""" 
>>> print(foobar) 
'"No, thanks, Mom," I said, "I don't know how long it will take."' 

、Pythonはfoobarというのrepresentationを出力します。この表現は、有効なPythonコードであり、かつ/またはデバッグに役立つように設計されており、ユーザーに出力されることはありません。

1
>>> print foobar 

foobarは、それ自体で、エスケープ文字列を印刷する文字列にreprを呼び出します。 print foobarは、文字列の代わりにstrを呼び出します。

+0

これはPython 2.xでのみ動作します。私は、3.xの尖頭でprint * statement *について教えて、はるかに分かりやすいprint * function *について教えてくれる理由はまったくありません。 – phihag

+0

@phihag:ああ、申し訳ありません。私は長い間、Pythonを書いてきましたが、print-as-a-statementは私にとって第二の性質です。私はそれについて考えることさえしない。 – mipadi

0

同じ値を印刷しています。単一引用符をエスケープして、cmd行で使用される一重引用符と区別して文字列を表示することのみを示しています。

関連する問題