web-dev-qa-db-fra.com

Comment imprimer un signe '%' en utilisant le formatage de chaîne?

J'ai fait un petit script à la calculatrice pour cent; Cependant, je souhaite réellement inclure le "%" dans le message imprimé ...

J'ai essayé ça au début - ça n'a pas marché ...

oFile.write ("Pourcentage:% s%"\n "% pour cent)

J'ai ensuite essayé "Percentage: %s"%"\n" % percent" qui n'a pas fonctionné.

J'aimerais que le résultat soit: Pourcentage: x%

Je continue à avoir "TypeError: pas tous les arguments convertis lors du formatage de chaîne" 

12
Eric1989

Pour imprimer le signe %, vous devez l'échapper avec un autre signe %

percent = 12
print "Percentage: %s %%\n" % percent  # Note the double % sign
>>> Percentage: 12 %
31
bvidal

Ou utilisez la fonction format(), qui est plus élégante.

percent = 12
print "Percentage: {}%".format(percent)

4 ans plus tard éditer

Maintenant, dans Python3x, print() nécessite une parenthèse.

percent = 12
print ("Percentage: {}%".format(percent))
9
GLHF

La nouvelle approche Python 3 consiste à utiliser des chaînes de format.

percent = 12
print("Percentage: {0} %\n".format(percent))
>>> Percentage: 12 %

Ceci est également supporté dans Python> 2.6.

Voir la documentation ici: Python 3 et Python 2

3
js837

Le format est plus élégant mais le signe modulo semble être plus rapide!

http://inre.dundeemt.com/2016-01-13/string-modulo-vs-format-fight/ - montre que modulo est environ 30% plus rapide!

1
Thomas Vetterli