101 votes

Comment inclure une citation dans une chaîne Python RAW

Considérez :

>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'

Alors comment obtenons-nous la citation, mais pas la barre oblique ?

Et s'il vous plaît ne suggérez pas r'what"ever', parce que la question devient alors simplement comment inclure les deux types de devis ?

Associé

166voto

Adam Rosenfield Points 176408

Si vous souhaitez utiliser des guillemets doubles dans des chaînes mais pas des guillemets simples, vous pouvez simplement utiliser des guillemets simples comme délimiteur à la place :

r'what"ever'

Si vous avez besoin des deux types de guillemets dans votre chaîne, utilisez une chaîne à trois guillemets :

r"""what"ev'er"""

Si vous voulez inclure les deux types de cordes à trois guillemets dans votre chaîne (un cas extrêmement improbable), vous ne pouvez pas le faire, et vous devrez utiliser des cordes non-raw avec des échappées.

12voto

Bakuriu Points 22607

Si vous avez besoin de n'importe quel type de devis (simple, double et triple pour les deux), vous pouvez "combiner"(0) les chaînes :

>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """
>>> print raw_string_with_quotes
double"single'double triple""" single triple'''

Vous pouvez également « combiner »(0) des cordes brutes avec des cordes non-raw :

>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'

(0) : En fait, l'analyseur Python joint les chaînes, et il ne crée pas plusieurs chaînes. Si vous ajoutez l'opérateur "+", alors plusieurs chaînes sont créées et combinées.

10voto

Karl Points 2712

Python a plus d'une façon de faire des cordes. La syntaxe de chaîne suivante vous permettrait d'utiliser des guillemets doubles :

'''what"ever'''

5voto

Mark Points 49079

Peu importe, la réponse est des chaînes brutes à trois guillemets :

r"""what"ever"""

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X