Отображение специальных символов при использовании оператора печати

89

Я хотел бы отображать escape-символы при использовании оператора печати. Например

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

Я хочу, чтобы он отображал: «Hello \ tWorld \ nHello \ sWorld»

Ян Филлипс
источник

Ответы:

163

Используйте repr :

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

Обратите внимание, вы не получите \sместо. Надеюсь, это была опечатка ...?

Но если вам действительно нужны \sпробелы, вы можете сделать это:

print(repr(a).replace(' ',r'\s'))
Unutbu
источник
1
Python 3:print(repr(a))
07lodgeT
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это не escape-символ, за исключением регулярных выражений, и тогда он по-прежнему имеет совершенно другое значение, чем то, для чего вы его используете.

Роберт
источник