J'ai finalement basculé de %
Vers l'opérateur de formatage de chaîne .format()
dans mon code 2.x afin de faciliter la migration vers 3.x à l'avenir. Il était un peu surprenant de découvrir que non seulement le formatage de style %
Reste dans Py3, mais qu'il est largement utilisé dans le code de bibliothèque standard. Cela semble logique, car écrire '(%s)' % variable
est un peu plus court et peut-être plus facile à comprendre que '({})'.format(variable)
. Mais je doute toujours. Est-il approprié (pythonique?) D'utiliser les deux approches dans le code? Je vous remercie.
La documentation de Python 3.2 indique que %
Finira par disparaître.
http://docs.python.org/3.2/tutorial/inputoutput.html#old-string-formatting
Comme
str.format()
est assez nouveau, beaucoup de code Python utilise toujours l'opérateur%
. Cependant, parce que cet ancien style de formatage sera finalement supprimé de la langue,str.format()
doit généralement être utilisée.
Mais comme @ regilero dit , la phrase est passée de 3,3 , ce qui pourrait suggérer que ce n'est pas vraiment le cas. Il y a quelques conversations ici qui suggèrent la même chose.
Depuis Python 3.4 le paragraphe 7.1.1 se lit comme suit:
L'opérateur% peut également être utilisé pour le formatage de chaînes. Il interprète l'argument de gauche un peu comme une chaîne de format de style sprintf () à appliquer à l'argument de droite, et renvoie la chaîne résultant de cette opération de formatage.
Voir aussi Python 3.4 4.7.2 Formatage de chaînes de style printf.