C’est une question légitime et pas évidente de prime abord.
(aparté: attention au whitespace en python, là ton code il veut rien dire parce que tu as collé une citation en markdown. Pour afficher du code sur Discourse il faut l’entourer de triple accent grave (```)).
On peut décomposer
textPrint.print(screen, “Axis {} value: {:>6.3f}”.format(i, axis) )
en trois parties:
Première partie: Tu essaies d’afficher une chaine de caractère sur l’écran, du coup tu fais testPrint.print(screen, ma_chaine_de_caratere)
. Probablement pas besoin d’épiloguer dessus (ça tombe bien j’ai jamais touché à Pygame )
Deuxième partie: Ta chaine de caractère est évaluée dynamiquement (càd tu vas pas faire une chaîne de caractère différentes pour chaque valeur de i ou de axis avec des if/else tentaculaires). Pour cela tu utilises la méthode .format
qui permet de remplacer ce qui est entouré d’accolades par quelque chose d’autre, par exemple
my_str = "Prends ça, {} de malheur !".format("monstre")
print(my_str)
> Prend ça, monstre de malheur !
Tu peux aussi nommer les trucs à remplacer:
my_str = "{nom}, espèce de {insulte}!".format(nom="Valvert", insulte="sot")
print(my_str)
> Valvert, espèce de sot !
Troisième partie, le :>6.3f
qui nous intéresse: on peut formatter les nombres qu’on remplace pour qu’ils soient plus jolis (par exemple il n’est nécessaire dit d’afficher les résultats d’un calcul avec toute la précision que permet Python).
Il y a plusieurs parties à cette chaîne:
:
indique que tu veux formater ton nombre (tout ce qui est gauche de ces deux-points corresponds à son identifiant, si tu veux faire .format(identifiant=valeur), genre
"Le taux de remplissage est de {rate:.1f} m/s".format(rate=get_rate())
6
indique que ta chaîne de caractère va comporter au minimum 6 éléments. C’est surtout flagrant si tu as du contenu après ta variable, par exemple:
"La température au sol est de {temp:20.1f} degrés Celcius.".format(temp=get_temp())
> La température au sol est de 7.3 degrés Celcius.
.3
indique que tu vas afficher trois chiffres après la décimale
f
indique que tu vas afficher un float, ce qui ne change pas grand chose par rapport au truc par défaut (il y a d’autres modes: par exemple si tu mets e
ça va t’afficher ta valeur en notation scientifique).
Je me base sur ce site dedié qui trouve lui aussi que la doc officiel de Python est trop obscure et manque de cas pratique et concret.