>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Alors, comment pouvons-nous obtenir la citation mais pas la barre oblique?
Et s'il vous plaît ne suggère pas r'what"ever'
_ car la question devient alors simple: comment inclure les deux types de citations?
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:
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 souhaitez inclure les deux types de chaînes à triple citation dans votre chaîne (un cas extrêmement improbable), vous ne pouvez pas le faire et vous devez utiliser des chaînes non brutes avec des échappements.
Si vous avez besoin de tout type de guillemets (simples, doubles et triples 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 chaînes brutes avec des chaînes non brutes:
>>> 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 ne crée pas plusieurs chaînes. Si vous ajoutez l'opérateur "+", plusieurs chaînes sont créées et combinées.
Python a plus d’un moyen de faire des chaînes. La syntaxe de chaîne suivante vous permettrait d'utiliser des guillemets doubles:
'''what"ever'''
Peu importe, la réponse est une chaîne brute à trois guillemets:
r"""what"ever"""
Depuis que je suis tombé sur cette réponse et que cela m’a beaucoup aidé, mais j’ai trouvé un problème syntaxique mineur, j’ai pensé que je devais éviter aux autres d’être frustrés. La chaîne à triple guillemet fonctionne pour ce scénario comme décrit, mais notez que si le "vous voulez dans la chaîne se produit à la fin de la chaîne elle-même:
somestr = """This is a string with a special need to have a " in it at the end""""
Vous rencontrerez une erreur lors de l'exécution car les guillemets "" "" (4) dans une ligne confondent le lecteur de chaîne, car il pense qu'il a déjà atteint la fin de la chaîne et trouve ensuite un "aléatoire". Vous pouvez valider cette en insérant un espace dans les 4 guillemets comme suit: "" "" "et il n'y aura pas d'erreur.
Dans ce cas particulier, vous devrez soit utiliser:
somestr = 'This.....at the end"'
ou utilisez la méthode décrite ci-dessus pour construire plusieurs chaînes avec "and" puis les concaténer après coup.