printステートメントを使用するときに特殊文字を表示する


89

printステートメントを使用するときにエスケープ文字を表示したいのですが。例えば

a = "Hello\tWorld\nHello World"
print a
Hello   World
Hello World

「Hello \ tWorld \ nHello \ sWorld」と表示したいのですが

回答:


162

reprを使用します:

a = "Hello\tWorld\nHello World"
print(repr(a))
# 'Hello\tWorld\nHello World'

\sスペースを確保できないことに注意してください。それがタイプミスだったといいのですが…?

しかし、本当に\sスペースが必要な場合は、次のようにすることができます。

print(repr(a).replace(' ',r'\s'))

1
Python 3は次のとおりです。print(repr(a))
07lodgeT19年

16

文字列をそのように印刷したいだけですか、それとも文字列の内部表現にしたいですか?後者の場合は、接頭辞:を付けて、生の文字列として作成しrますr"Hello\tWorld\nHello World"

>>> a = r"Hello\tWorld\nHello World"
>>> a # in the interpreter, this calls repr()
'Hello\\tWorld\\nHello World'
>>> print a
Hello\tWorld\nHello World

また、\sは正規表現を除いてエスケープ文字ではありません。それでも、使用しているものとはかなり異なる意味を持ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.