Considérer:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Alors, comment obtenir le devis, mais pas la barre oblique?
Et s'il vous plaît ne suggérez pas r'what"ever'
, car alors la question devient simplement comment inclure les deux types de citations?
Réponses:
Si vous souhaitez utiliser des guillemets doubles dans les 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 entre guillemets triples:
r"""what"ev'er"""
Si vous souhaitez inclure les deux types de chaînes entre guillemets triples dans votre chaîne (un cas extrêmement improbable), vous ne pouvez pas le faire, et vous devrez utiliser des chaînes non brutes avec des échappements.
la source
r"raw string"
et C #@"@-quoted string"
et"""triple quotes"""
r'what"ever"
une erreur d'analyse? Voulez-vous direr'what"ever'
?Python a plus d'un moyen de créer des chaînes. La syntaxe de chaîne suivante vous permet d'utiliser des guillemets doubles:
'''what"ever'''
la source
Si vous avez besoin de n'importe quel type de guillemet (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 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 il ne crée pas plusieurs chaînes. Si vous ajoutez l'opérateur «+», plusieurs chaînes sont créées et combinées.
la source
Peu importe, la réponse est des chaînes brutes entre guillemets triples:
r"""what"ever"""
la source
Depuis que je suis tombé sur cette réponse, et cela m'a beaucoup aidé, mais j'ai trouvé un problème syntaxique mineur, j'ai senti que je devais éviter les frustrations éventuelles des autres. La chaîne entre guillemets triples fonctionne pour ce scénario comme décrit, mais notez que si le "que 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 le "" "" (4) guillemets d'affilée confond 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 cela en insérant un espace dans les 4 guillemets comme ceci: "" "" et il n'aura pas l'erreur.
Dans ce cas particulier, vous devrez soit utiliser:
somestr = 'This.....at the end"'
ou utilisez la méthode décrite ci-dessus pour créer plusieurs chaînes avec des "et" mixtes, puis les concaténer après coup.
la source
Juste pour inclure de nouvelles fonctionnalités compatibles avec Python f String:
var_a = 10 f"""This is my quoted variable: "{var_a}". """
la source
f"foo\"bar"
.Utilisation:
dqote='"' sqote="'"
Utilisez l'opérateur «+»
dqote
et lessquote
variables et pour obtenir ce dont vous avez besoin.Si je veux
sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
, vous pouvez essayer ce qui suit:dqote='"' sqote="'" cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'
la source