Impression et sortie
Affichez des résultats avec print(), formatez le texte avec les f-strings et contrôlez ce qui apparaît à l'écran.
- Utiliser print() pour afficher des valeurs et des messages
- Formater la sortie avec les f-strings et les spécificateurs de format
- Combiner plusieurs valeurs dans un seul appel à print()
Une réponse enfermée dans la machine
Essayez de calculer
À la main, vous écririez les étapes et la réponse sur le papier :
Obtenir la réponse n’est que la moitié d’un problème, l’autre moitié consiste à la communiquer. Confiez maintenant cette même expression à un ordinateur. Il calcule en un clin d’œil, puis oublie aussitôt de vous le dire. La valeur demeure silencieusement enfermée dans la machine, et à moins que vous n’exigiez qu’elle en sorte, vous ne la verrez jamais.
Ce calcul invisible est le problème fondamental que cette leçon résout. Un programme a besoin d’une façon d’écrire ses résultats là où un être humain peut les lire, en Python, cette instruction s’appelle print().
print(), révéler une valeur
print() prend une valeur et l’envoie à l’écran. N’importe quelle valeur convient : Python la convertit d’abord en texte.
print(13.4) # 13.4
print(42) # 42
print("hello") # helloInutile d’imprimer un nombre fini, print() accepte n’importe quelle expression et l’évalue d’abord :
print((17 * 3 + 4**2) / 5) # 13.4Le schéma à retenir : calculez quelque chose, puis confiez-le à print(). Une valeur n’a aucun moyen de sortir d’un programme par elle-même ; l’impression est la sortie.
Un nombre, et son étiquette
Un nombre nu a rarement du sens. Sur le papier, vous n’écririez pas tout seul, vous écririez « Score : 13,4 ». Donnez plusieurs arguments à print() et il insère un espace entre eux :
print("Score:", 87) # Score: 87Le premier argument est l’étiquette ; le second, la valeur. Vous pouvez en empiler autant que vous voulez, et print() les sépare pour vous.
Afficher exactement les chiffres que vous voulez
C’est là que les difficultés commencent : la valeur
porte tous ses chiffres avec elle en permanence. Mais un tableau a besoin de , une ligne météo de 23.8°C, pas de 23.7891°C. Le nombre de chiffres affichés est un choix de présentation du nombre, il ne doit pas modifier la valeur stockée, sinon vous perdez la précision pour toujours.
L’arrondi doit donc vivre dans l’impression, pas dans le calcul. Une f-string vous permet de décider au moment d’imprimer : écrivez f"...", placez l’expression entre {...} et ajoutez un spécificateur de format après les deux points :
price = 19.999
print(f"Total: ${price:.2f}") # Total: $20.00 (affiché arrondi)
print(price) # 19.999 (valeur intacte)
print(f"Double: {price * 2}") # 39.998 (toute expression fonctionne)Il vaut la peine de disséquer ce qui se passe dans {price:.2f} :
{price}signifie mets la valeur ici, la f-string fait la conversion en texte pour vous.:.2fsignifie affiche-la en virgule fixe avec 2 chiffres après la décimale, l’arrondi ne se produit que dans la forme affichée.
Les spécificateurs font plus qu’arrondir : ils alignent aussi. Une colonne de 7.5, 8.5, 87.5 paraît irrégulière ; donnez à chaque entrée la même largeur et la colonne s’aligne :
print(f"{7.5:>6}") # " 7.5" aligné à droite sur une largeur de 6
print(f"{87.5:>6}") # " 87.5"Un exemple travaillé : la colonne des prix
Un reçu de magasin veut les étiquettes à gauche et les nombres alignés sur leurs décimales. Deux directions de format font les deux choses :
print(f"{'item':<10}{'price':>7}")
print(f"{'coffee':<10}{3.5:>7.2f}")
print(f"{'croissant':<10}{2.95:>7.2f}")
# item price
# coffee 3.50
# croissant 2.95<10 aligne l’étiquette à gauche sur dix colonnes ; >7.2f aligne le nombre à droite sur sept, en gardant deux décimales. L’alignement n’est que du format dans l’autre direction, le même {valeur:spécification} que vous connaissez déjà, la flèche disant de quel côté penche le texte. C’est la graine de tout tableau que le cours construira : étiquettes d’un côté, nombres de l’autre.
Pièges courants
print()n’a pas de valeur de retour.print("hi")affiche du texte mais vautNone, vous ne pouvez pas récupérer ce qu’il imprime dans une variable. L’impression est la fin d’une opération, jamais une étape à l’intérieur.- Mélanger les types avec
+.print("Score: " + 87)lève uneTypeError, car une chaîne et un nombre ne peuvent pas être additionnés. Les f-strings existent précisément pour associer une étiquette à une valeur :print(f"Score: {87}"). - Une
{littérale dans un f-string demande{{.f"{{x}}"affiche{x}; une{seule se lit comme le début d’une expression. Doubler est l’échappatoire.
🧩 Défis
🧩 Défi, réfléchissez d'abord, puis révélez
Calculez sur le papier, puis imprimez-la sans taper vous-même la réponse, laissez l’ordinateur calculer et imprimer en une seule étape.
💡 Réponse : print((2**5 + 9) / 5) → 8.2. Une seule expression, confiée directement à print() : la machine l'évalue et écrit le résultat.
🧩 Défi, réfléchissez d'abord, puis révélez
Avec temperature = 23.7891, imprimez "Today: 23.8°C" (une décimale) sans toucher à la valeur stockée.
💡 Réponse : print(f"Today: {temperature:.1f}°C") → Today: 23.8°C. Le spécificateur :.1f arrondit uniquement à l'affichage ; temperature reste égal à 23.7891.
🤔 Questions socratiques
- Pourquoi Python utilise-t-il
print()comme fonction (avec des parenthèses) plutôt que comme instruction ? Quel avantage cela vous donne-t-il ? print("A", "B", "C")afficheA B Cavec des espaces. Comment les imprimer sans espace ? Avec des virgules entre eux ?- Si
x = 3.14, que produitf"{x}"? Etf"{x:.0f}"? Expliquez la différence en termes de valeur et de représentation.
✅ Vérification rapide
1. Votre formule est calculée, mais le programme n'affiche rien. Pourquoi ?
2. Comment imprimer 3.14159 en affichant deux décimales, sans arrondir la valeur stockée ?