print ("{:.{}f}".format(x,y))
3 Réponses :
Tout d'abord, numérotons les champs: la chaîne de format L'argument à la position 1 est Le résultat est donc '{:. {} f}'
équivaut à '{0:. {1} f}' code >.
y
, qui vaut 0, donc cela équivaut à '{0: .0f}'
par substitution. Autrement dit, il formate l'argument à la position 0 (c'est-à-dire x
) comme un flottant, avec 0 décimale. '100' code>, car c'est
x
à 0 décimale. Vous pouvez essayer ceci avec différentes valeurs de y
pour voir les résultats: >>> '{:.{}f}'.format(100.1205, 0)
'100'
>>> '{:.{}f}'.format(100.1205, 1)
'100.1'
>>> '{:.{}f}'.format(100.1205, 2)
'100.12'
>>> '{:.{}f}'.format(100.1205, 3)
'100.121'
>>> '{:.{}f}'.format(100.1205, 4)
'100.1205'
>>> '{:.{}f}'.format(100.1205, 5)
'100.12050'
Les accolades sont interprétées de l'extérieur vers l'intérieur, c'est-à-dire que les accolades les plus à l'extérieur seront remplacées par le premier argument de Si ce n'est toujours pas clair, je le décomposerais d'abord en une opération de format unique, pour mieux comprendre: Maintenant, tout ce que nous voulons faire est de tout couper chiffres significatifs après la virgule décimale, puis: Ou pour couper tous sauf un: Ajout d'un autre paramètre au format ()
, c'est-à-dire x
, tandis que les accolades les plus internes seront remplacées par le deuxième argument de format ()
, c'est-à-dire y
. Ici, x
représentera le flottant à afficher, et y représentera les chiffres significatifs après la décimale. Consultez de nombreux exemples et documents ici a > >>> print ("{:.{}f}".format(x,y)
100
>>> print ("{:.1f}".format(x))
100.1
>>> print ("{:.0f}".format(x))
100
format ()
, c'est-à-dire y, vous permet alors de modifier les chiffres significatifs avec la valeur de y. >>> print ("{}".format(x))
100.1205
x = 100.1205, y = str (x) [6
]. ici y = 0
tout d'abord comprendre le "{:. {} f}". format (x, y)
. ici, nous utilisons le formatage de position de la chaîne. alors nous pouvons voir que x est à la position 0 et y est à la position 1.
nous pouvons considérer "{:. {} f}"
comme " {valeur de x: {valeur de y} f}
"
maintenant la valeur de x est 100 et la valeur de y est 0 donc la chaîne ressemblera à "{100:. {0} f}". cela signifie qu'il y a 0 ou aucun chiffre après la décimale
lorsque print ("{:. {} f}". format (x, y))
s'exécutera, il affichera "100"
Qu'attendez-vous comme sortie?