web-dev-qa-db-fra.com

Afficher des caractères spéciaux lors de l'utilisation de l'instruction print

Je voudrais afficher les caractères d'échappement lors de l'utilisation de l'instruction print. Par exemple.

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

Je voudrais qu'il affiche: "Hello\tWorld\nHello\sWorld"

77
Ian Phillips

Utilisez repr :

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

Notez que vous n'obtenez pas \s pour un espace. J'espère que c'était une faute de frappe ...?

Mais si vous voulez vraiment \s pour les espaces, vous pouvez faire ceci:

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

Voulez-vous simplement imprimer la chaîne de cette façon ou voulez-vous que ce soit la représentation interne de la chaîne? Si c'est le dernier cas, créez-le en tant que chaîne brute en le préfixant avec 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

Également, \s n'est pas un caractère d'échappement, sauf dans les expressions régulières, et a toujours une signification très différente de celle pour laquelle vous l'utilisez.

14
robert