Prépa Python

Opérationnel — chapitre 22 sur 54

Les f-strings

Formatage moderne et lisible des chaînes

60 minAbonnés

Vous écrivez des f-strings simples depuis le chapitre sur les chaînes : f"{prenom} a {age} ans". Ce chapitre va plus loin — chiffres formatés, tableaux alignés, dates… Les f-strings (formatted string literals), introduites en Python 3.6, sont la méthode moderne pour combiner texte et variables. Le TOSA les teste massivement dès le niveau Opérationnel.

Les trois façons de formater une chaîne

Il y a historiquement plusieurs façons de mélanger texte et variables en Python. Les f-strings sont aujourd'hui le standard — les autres sont à reconnaître (le TOSA peut les présenter) mais pas à utiliser dans du nouveau code.

Concaténation avec + (à éviter)

python
nom = "Alice"
age = 30
message = "Bonjour " + nom + ", vous avez " + str(age) + " ans."
print(message)

Problèmes :

  • Verbeux et difficile à lire.
  • Nécessite des str(...) pour convertir les nombres.
  • Mauvais pour les performances sur des chaînes longues.

Avec l'opérateur % (ancien style)

python
nom = "Alice"
age = 30
message = "Bonjour %s, vous avez %d ans." % (nom, age)
print(message)

Hérité du C. Fonctionne mais obsolète en Python moderne.

Avec la méthode .format() (Python 2.6+)

python
nom = "Alice"
age = 30
message = "Bonjour {}, vous avez {} ans.".format(nom, age)
print(message)

Mieux, mais toujours verbeux. Remplacé par les f-strings en Python 3.6+.

Avec les f-strings (Python 3.6+, RECOMMANDÉ)

python
nom = "Alice"
age = 30
message = f"Bonjour {nom}, vous avez {age} ans."
print(message)

Avantages :

  • Syntaxe lisible : les variables sont à leur place dans la chaîne.
  • Pas besoin de str(...) : la conversion est automatique.
  • Performances optimales (les f-strings sont compilées).

Le f devant la chaîne la transforme en f-string ; Python évalue ensuite tout ce qui est entre {}.

Ce qu'on peut mettre dans les accolades

À l'intérieur des {...}, on peut placer toute expression Python valide.

Une simple variable

python
nom = "Alice"
print(f"Bonjour {nom} !")

Une expression

python
a, b = 3, 5
print(f"{a} + {b} = {a + b}")
print(f"{a}² = {a ** 2}")

Un appel de fonction ou de méthode

python
nom = "alice"
print(f"Nom : {nom.upper()}")
print(f"Longueur : {len(nom)}")

import math
print(f"Racine de 2 : {math.sqrt(2)}")

Un accès à une liste ou un dictionnaire

python
fruits = ["pomme", "banane", "cerise"]
print(f"Premier fruit : {fruits[0]}")

personne = {"nom": "Alice", "age": 30}
print(f"Nom : {personne['nom']}, Âge : {personne['age']}")

Suite réservée aux abonnés

Débloquez l'intégralité du parcours

Les 54 chapitres, les exercices corrigés automatiquement, les examens blancs et le suivi de votre progression.

Voir les offresChapitres en accès libre

Déjà un accès ? Connectez-vous.