Comment puis-je sélectivement échapper pourcentage (%) en Python cordes?

J'ai le code suivant

test = "have it break."
selectiveEscape = "Print percent % in sentence and not %s" % test

print(selectiveEscape)

Je voudrais obtenir la sortie:

Print percent % in sentence and not have it break.

Ce qui se passe réellement:

    selectiveEscape = "Use percent % in sentence and not %s" % test
TypeError: %d format: a number is required, not str
  • Mais j'ai personnellement rencontré le problème lors de la mise en forme du modèle a été lu à partir d'un fichier. Si vous n'avez aucun contrôle sur ce qui est à l'intérieur du fichier, la question est légitime.
  • Si la mise en forme du modèle est dans un fichier, puis le modèle est - il correct, y compris la bonne échapper de % symboles - est de la responsabilité du créateur du fichier.
  • Pourquoi n'est-il pas \%? C'était ma deviner, je suis surpris de trouver que c'est %% au lieu - semble assez contre-intuitif.
  • % i signifie "une représentation décimale d'un nombre entier, collier de gauche avec des espaces.
  • L'évasion est à la fonction, pas la syntaxe de la langue. Par conséquent, si l'évasion a été \% il serait effectivement \\% lorsqu'il est écrit en code ordinaire. <escape><escape> est le type de modèle que j'ai vu, et \ se trouve être le plus commun, caractère d'échappement, pour le meilleur ou pour le pire.
  • et comment voulez-vous échapper à \ si vous avez eu pour imprimer \\%? Vous êtes lié pour exiger échapper à travers la répétition de caractères spéciaux les caractères spéciaux sont également pas en fonction des circonstances.
  • Je pense que c'est ennuyeux en Python que le littéral % est codée par "%%" et non par "\%".

InformationsquelleAutor jondykeman | 2012-05-21