Programmation : chapitres 5 (f-strings) et 6 (typage) — corrigent les liens morts du site

This commit is contained in:
2026-07-07 02:19:27 +02:00
parent 36019821a0
commit 1647035df2
2 changed files with 436 additions and 0 deletions

View File

@@ -0,0 +1,180 @@
# 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](../chapitre_4/)
## Consignes
1. Télécharger le fichier [TD.ipynb](./TD.ipynb),
2. Se rendre sur [Basthon](https://notebook.basthon.fr/),
3. Ouvrir le fichier TD.ipynb téléchargé,
4. Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
5. À 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()`** :
```python
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 :
```python
print(f"Bonjour {prenom}, tu as {age} ans.")
# → Bonjour Alice, tu as 17 ans.
```
---
### 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.
```python
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 :
```python
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
```python
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
```python
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
```python
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
```python
numero = 7
print(f"Joueur n°{numero:03d}") # → Joueur n°007
```
#### Combinaison : largeur ET précision
```python
temperature = 18.5
print(f"Température : {temperature:6.1f} °C") # → Température : 18.5 °C
```
---
### 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
```python
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 :
```
Nom Note Rang
-------------------------
Alice 17.50 1
Bob 14.00 2
Carla 15.75 3
```
---
### Erreurs fréquentes
```python
# 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](../chapitre_6/)