Wyświetlaj znaki specjalne, gdy używasz instrukcji print

89

Chciałbym wyświetlić znaki ucieczki podczas używania instrukcji print. Na przykład

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

Chciałbym, żeby wyświetliło się: „Hello \ tWorld \ nHello \ sWorld”

Ian Phillips
źródło

Odpowiedzi:

163

Użyj repr :

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

Zauważ, że nie otrzymasz \smiejsca. Mam nadzieję, że to była literówka ...?

Ale jeśli naprawdę potrzebujesz \sprzestrzeni, możesz to zrobić:

print(repr(a).replace(' ',r'\s'))
unutbu
źródło
1
Python 3 to:print(repr(a))
07lodgeT
16

Czy chcesz po prostu wydrukować ciąg w ten sposób, czy chcesz, aby był to wewnętrzna reprezentacja ciągu? Jeśli to drugie, utwórz go jako surowego ciąg poprzedzając go 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

Ponadto \snie jest znakiem ucieczki, z wyjątkiem wyrażeń regularnych, a wtedy nadal ma znacznie inne znaczenie niż to, do czego go używasz.

robert
źródło