/ / Mise en forme des nombres Python [dupliquer] - python, mise en forme

Formatage des nombres Python [dupliquer] - Python, formatage

Duplication possible:
Options de formatage de chaîne: avantages et inconvénients

Quelle est la différence entre

"%.2f" % x

et

"{:.2f}".format(x)

Je ne sais trop quelle méthode utiliser et pour quelle version de Python.

Réponses:

7 pour la réponse № 1

En général, vous voulez utiliser le 2ème formulaire (.format()) il est plus récent et l’autre finira par disparaître (du moins c’était l’intention à un moment donné - voir Remarques au dessous de).

Pour citer le python Nouveautés de Python 3.0 docs:

Un nouveau système de formatage de chaîne intégréopérations remplace le% opérateur de formatage de chaîne. (Cependant, l'opérateur% est toujours prise en charge; il sera obsolète en Python 3.1 et supprimé de la langue ultérieurement.) Lisez le PEP 3101 pour un aperçu complet.

.format() est disponible depuis au moins Python 2.6

Plus d'informations sur Formatage avancé des chaînes (PEP 3101)

Remarques:

@Duncan mentionne également un référence à un fil qui discute si / quand le % le formatage basé disparaîtra dans les commentaires ci-dessous. Et @NedBatchelder a cette citation précise du Docs Python 3.2: "... there are no current plans to deprecate printf-style formatting."


3 pour la réponse № 2

Le style% a tendance à être plus bref, mais aussi plus limité. .format () présente certains avantages:

  1. permet aux classes définies par l'utilisateur de fournir leurs propres drapeaux de formatage,
  2. peut accéder aux attributs d'objets

bien que dans votre exemple avec des flotteurs, aucun de ceux-ci n'est un avantage.

Ces deux techniques continueront de fonctionner, vous pourrez donc les utiliser. Il y avait une idée que% -formatting serait retiré de Python 3, mais ce n'est plus vrai. Voir le 3.2 docs:

Comme la nouvelle syntaxe de formatage de chaîne est plusflexible et gère naturellement les n-uplets et les dictionnaires, il est recommandé pour le nouveau code. Cependant, il n’est pas prévu de déprécier le formatage printf.