Exibir caracteres especiais ao usar a declaração de impressão


93

Eu gostaria de exibir os caracteres de escape ao usar a instrução de impressão. Por exemplo

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

Eu gostaria que exibisse: "Olá \ tMundo \ nOlá \ sMundo"

Respostas:


170

Use repr :

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

Observe que você não consegue \spor um espaço. Espero que tenha sido um erro de digitação ...?

Mas se você realmente quiser \sespaços, pode fazer o seguinte:

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

1
Python 3 é:print(repr(a))
07lodgeT

16

Você deseja apenas imprimir a string dessa maneira ou quer que seja a representação interna da string? Neste último caso, criá-lo como uma string bruta prefixando-lo com 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

Além disso, \snão é um caractere de escape, exceto em expressões regulares, e ainda tem um significado muito diferente daquele para o qual você o está usando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.