f-string
DESCRIPTION.
Retourne la mise en forme d'une chaine de caractères.
SYNTAXE.
Texte = f"texte { ValeurA } texte { ValeurN } texte ..."
Texte = ⇨ variable qui recevra la chaine formatée [ optionnel ]
f"" ⇨ appel de la méthode de formatage [ OBLIGATOIRE ]
texte ⇨ suite de caractères [ optionnel ]
{ Valeur } ⇨ conversion d'une variable en str ( ) [ optionnel ]
REMARQUES.
valeur peut être un objet de plusieurs type : int ( ), float ( ), str ( ), ..., ou des expressions, comme des opérations arithmétiques, retournant un objet valide pour f-string.
Depuis Python 3.6 format ( ) est remplacé par f" { } " (f-string) plus lisible. La connaissance de format ( ) se limite maintenant à la maintenance, voire la conversion, d'anciens scripts où l'emploi de format ( ) est fréquent.
EXEMPLES.
Mise en forme simple.
Nom = input ( "C'est quoi ton nom de famille ? " )
Prenom = input ( "Et ton prénom c'est comment ? " )
print ( f"Donc tu es { Prenom } { Nom }." )
retourne :
C'est quoi ton nom de famille ? Nerd
Et ton prénom c'est comment ? Origine
Donc tu es Origine Nerd.
Mise en forme d'un retour de méthode.
Texte = input ( "Entrez un texte ... " )
print ( f"Votre texte en majuscules : { Texte.upper ( ) }" )
print ( f"Votre texte en minuscules : { Texte.lower ( ) }" )
print ( f"Avec une majuscule en début de mot : { [ mot.capitalize ( ) for mot in Texte.split ( ) ] }." )
retourne :
Entrez un texte ... f-string remplace efficacement format ()
Votre texte en majuscules : F-STRING REMPLACE EFFICACEMENT FORMAT ()
Votre texte en minuscules : f-string remplace efficacement format ()
Avec une majuscule en début de mot : ['F-string', 'Remplace', 'Efficacement', 'Format', '()'].
Mise en forme dans une variable str ( ).
Largeur = int ( input ( "Largeur ? " ) )
Longueur = int ( input ( "Longueur ? " ) )
Perimetre = f"Un rectangle de { Longueur } sur { Largeur } a une superficie de { 2 * ( Longueur + Largeur ) }"
Superficie = f"Son aire est de { Longueur * Largeur }²."
print ( Perimetre , Superficie )
retourne :
Largeur ? 7
Longueur ? 9
Un rectangle de 9 sur 7 a une superficie de 32 Son aire est de 63².
f-string permet un formatage des nombres de façon très implicite avec la forme : { valeur : format }, où valeur peut être un nombre ( int ( ) , float ( ), eval ( ) ... ), une opération arithmétique ou le retour d'une fonction.
format se présence suivant le modèle : alignement signe largeur groupage precision type avec :
- alignement , précise l'endroit où la valeur est aligné dans sa zone ( > à droite ; < à gauche ; ^ au centre ; = justifié ) ;
- signe, précise si le signe "+" doit être affiché devant valeur ( + affiché + et - ; - affiché - seulement (par défaut) ; " " afficher un espace à la place de + ) ;
- largeur, précise nombre de symboles (chiffre, signe, séparateur) qui seront affichés ;
- groupage, précise le symbole indiquant le séparateur de milliers ( _ ou , ) ;
- precision, précise le nombre de chiffres après la virgule (ce nombre doit être précédé d'un . (point)) ;
- type, précise le type d'affichage ( e (ou E) pour la notation scientifique ou f (ou F) pour la notation classique.
Attention, il ne doit y avoir aucun espace entre l'accolade ouvrante et valeur ({valeur), ni entre l'accolade fermante et format (format}).
nombre = 545710 / 545
print ( nombre )
print ( f"{nombre : >+20_.4f} " ) retourne 1001.302752293578
print ( f"{nombre : >-20_.4f} " ) retourne +1_001.3028
print ( f"{nombre : >-20,.4f} " ) retourne 1_001.3028
print ( f"{nombre : >-20_.4f} " ) retourne 1,001.3028
print ( f"{nombre : <-20_.4e} " ) retourne 1.0013e+03
print ( f"{nombre : ^-20_.4f} " ) retourne 1_001.3028
print ( f"{nombre : ^-15_.4f} " ) retourne 1_001.3028
print ( f"{nombre : ^-15_.3f} " ) retourne 1_001.303
print ( f"{nombre : ^-15_.2f} " ) retourne 1_001.30
print ( f"{nombre : ^-15_.5f} " ) retourne 1_001.30275
print ( f"{nombre : ^-15_.6f} " ) retourne 1_001.302752
On peut aussi demandez un affichage d'un nombre entier (int ( )) dans une base spécifique en ajoutant un lettre, selon la base choisie, en fin de format.
Vous pouvez choisir d'ajouter l'une des lettres suivantes :
- un b pour un affichage en binaire ;
- un c pour afficher un caractère correspondant a un code unicode ;
- un d pour un affichage en décimal (par défaut) ;
- un o pour un affichage en octal ;
- un x pour un affichage en hexadécimal.
nombre = 5473 // 45
print ( nombre ) retourne 121
print ( f"{nombre : >-9} " ) retourne 121
print ( f"{nombre : >-9b} " ) retourne 1111001
print ( f"{nombre : >-9d} " ) retourne 121
print ( f"{nombre : >-9o} " ) retourne 171
print ( f"{nombre : >-9x} " ) retourne 79
Attention à bien demander la conversion d'un nombre entier (int ( )).
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.