Mostrar caracteres especiales al usar la declaración de impresión

89

Me gustaría mostrar los caracteres de escape al usar la declaración de impresión. P.ej

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

Me gustaría que mostrara: "Hello \ tWorld \ nHello \ sWorld"

Ian Phillips
fuente

Respuestas:

163

Utilice repr :

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

Tenga en cuenta que no obtiene \sun espacio. Espero que haya sido un error tipográfico ...

Pero si realmente desea \sespacios, puede hacer esto:

print(repr(a).replace(' ',r'\s'))
unutbu
fuente
1
Python 3 es:print(repr(a))
07lodgeT
16

¿Desea simplemente imprimir la cadena de esa manera, o quiere que sea la representación interna de la cadena? En este último caso, lo crea como una cadena de texto en prefijándolo con 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

Además, \sno es un carácter de escape, excepto en las expresiones regulares, y aún tiene un significado muy diferente al que lo está usando.

robert
fuente