79 votes

Utilisation de guillemets à l'intérieur de guillemets

Quand je veux faire un print en Python et que je dois utiliser des guillemets, je ne sais pas comment le faire sans fermer la chaîne.

Par exemple :

print " "a word that needs quotation marks" "

Mais lorsque j'essaie de faire ce que j'ai fait ci-dessus, je finis par fermer la chaîne et je ne peux pas mettre le mot dont j'ai besoin entre guillemets.

Comment puis-je faire ça ?

196voto

Jamie Forrest Points 2145

Vous pouvez le faire de trois manières différentes :

  1. Utilisez les guillemets simples et doubles ensemble :

    print('"A word that needs quotation marks"')
    "A word that needs quotation marks"
  2. Échapper les guillemets doubles dans la chaîne :

    print("\"A word that needs quotation marks\"")
    "A word that needs quotation marks" 
  3. Utilisez des chaînes de caractères à triple guillemet :

    print(""" "A word that needs quotation marks" """)
    "A word that needs quotation marks"

5 votes

L'échappement des guillemets fonctionne, mais les espaces supplémentaires que vous avez insérés font maintenant partie de la chaîne de caractères, ce qui peut être facilement corrigé en supprimant les espaces. De même avec les chaînes entre guillemets triples - les espaces supplémentaires font maintenant partie de la chaîne, et je ne suis pas sûr de savoir comment résoudre ce problème car mettre le " intérieur à côté du triple-" provoque une SyntaxError.

3 votes

Vous pouvez éviter l'erreur de syntaxe en utilisant des guillemets simples triples : ''''un mot''''', mais maintenant les choses deviennent idiotes

1 votes

Si vous avez plusieurs mots comme celui-ci que vous voulez concaténer, j'utiliserais cette réponse . Il y a également une réponse spécifique à Python 3.6 qui est très lisible.

15voto

Jonathon Reinhart Points 40535

Vous devez y échapper. (En utilisant la fonction print de Python 3) :

>>> print("The boy said \"Hello!\" to the girl")
The boy said "Hello!" to the girl
>>> print('Her name\'s Jenny.')
Her name's Jenny.

Voir la page python pour littéraux de chaîne de caractères .

5voto

James Polley Points 4258

Python accepte à la fois " et ' comme guillemets, donc vous pourriez faire ceci comme :

>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"

Sinon, il suffit d'échapper le "s" interne

>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"

4voto

Droogans Points 2098

Utilisez le caractère d'échappement littéral \

print("Here is, \"a quote\"")

Le caractère signifie essentiellement ignorer le contexte sémantique de mon prochain personnage, et le traiter dans son sens littéral. .

2voto

Cleb Points 9410

Lorsque vous avez plusieurs mots comme celui-ci que vous voulez concaténer dans une chaîne, je recommande d'utiliser format ou f-strings qui améliorent considérablement la lisibilité (à mon avis).

Pour donner un exemple :

s = "a word that needs quotation marks"
s2 = "another word"

Maintenant, vous pouvez faire

print('"{}" and "{}"'.format(s, s2))

qui imprimera

"a word that needs quotation marks" and "another word"

À partir de Python 3.6, vous pouvez utiliser :

print(f'"{s}" and "{s2}"')

produisant le même résultat.

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