Les f-strings
L'activité consiste en un TD comprenant un cours dirigé et des exercices relatifs aux f-strings en Python.
Pré-requis
Avoir effectué l'activité sur les fonctions
Consignes
- Télécharger le fichier TD.ipynb,
- Se rendre sur Basthon,
- Ouvrir le fichier TD.ipynb téléchargé,
- Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
- À la fin de la séance, n'oubliez pas de sauvegarder votre fichier sur votre clé USB ou espace personnel.
Mémo — Les f-strings
Pourquoi les f-strings ?
Jusqu'ici, pour afficher une variable dans une phrase, on utilisait la concaténation ou la virgule dans print() :
prenom = "Alice"
age = 17
# Méthode 1 : concaténation (fastidieuse)
print("Bonjour " + prenom + ", tu as " + str(age) + " ans.")
# Méthode 2 : virgule dans print (peu flexible)
print("Bonjour", prenom, ", tu as", age, "ans.")
Les f-strings (introduites en Python 3.6) permettent d'écrire cela de façon bien plus lisible :
Syntaxe de base
Une f-string est une chaîne de caractères précédée de la lettre f. Les expressions entre accolades {} sont évaluées et insérées dans la chaîne.
nom = "Bob"
score = 142
message = f"Le joueur {nom} a obtenu {score} points."
print(message)
# → Le joueur Bob a obtenu 142 points.
On peut mettre n'importe quelle expression entre les accolades :
a = 5
b = 3
print(f"{a} + {b} = {a + b}") # → 5 + 3 = 8
print(f"Le double de {a} : {a * 2}") # → Le double de 5 : 10
print(f"Est-ce que {a} > {b} ? {a > b}") # → Est-ce que 5 > 3 ? True
Appel de fonctions dans une f-string
prenom = "alice"
print(f"Bonjour {prenom.upper()} !") # → Bonjour ALICE !
print(f"Longueur : {len(prenom)}") # → Longueur : 5
Formatage des nombres
C'est l'un des points les plus utiles des f-strings. On ajoute un format après un : dans les accolades.
Nombres décimaux — précision
pi = 3.14159265
print(f"{pi}") # → 3.14159265 (pas de format)
print(f"{pi:.2f}") # → 3.14 (2 chiffres après la virgule)
print(f"{pi:.4f}") # → 3.1416 (4 chiffres après la virgule)
print(f"{pi:.0f}") # → 3 (0 chiffres, arrondi)
Largeur et alignement
nom = "Alice"
print(f"|{nom:<10}|") # → |Alice | (aligné à gauche, largeur 10)
print(f"|{nom:>10}|") # → | Alice| (aligné à droite)
print(f"|{nom:^10}|") # → | Alice | (centré)
Nombres entiers — remplissage avec des zéros
Combinaison : largeur ET précision
Tableau récapitulatif des formats
| Format | Signification | Exemple | Résultat |
|---|---|---|---|
:.2f |
2 décimales | f"{3.14159:.2f}" |
3.14 |
:d |
Entier | f"{42:d}" |
42 |
:05d |
Entier, 5 chiffres, zéros | f"{7:05d}" |
00007 |
:<10 |
Aligné gauche, 10 chars | f"{'a':<10}" |
a |
:>10 |
Aligné droite, 10 chars | f"{'a':>10}" |
a |
:^10 |
Centré, 10 chars | f"{'a':^10}" |
a |
Exemple complet : tableau de résultats
resultats = [
("Alice", 17.5, 1),
("Bob", 14.0, 2),
("Carla", 15.75, 3),
]
print(f"{'Nom':<10} {'Note':>6} {'Rang':>5}")
print("-" * 25)
for nom, note, rang in resultats:
print(f"{nom:<10} {note:>6.2f} {rang:>5}")
Affiche :
Erreurs fréquentes
# ERREUR : oublier le f devant la chaîne
prenom = "Alice"
print("{prenom}") # → {prenom} (littéral, pas de substitution !)
print(f"{prenom}") # → Alice (correct)
# ERREUR : accolades sans contenu valide
print(f"{}") # SyntaxError
# ERREUR : mettre des guillemets identiques à l'intérieur
# print(f"{"Alice"}") # SyntaxError — utiliser des guillemets différents
print(f"{'Alice'}") # → Alice (guillemets simples à l'intérieur)
Pour aller plus loin
Une fois le TD fini et validé, vous pouvez effectuer l'activité suivante
Dernière mise à jour : 07/07/2026