%% nav-debut : généré par gen_navigation.py, ne pas modifier à la main %%
> [!nav]
> ↩ [[Code et Développement/Programmation/Lecture de Code - Python/Lecture de code - Python|Accueil · Lecture de code - Python]]
>
> | [[Code et Développement/Programmation/Lecture de Code - Python/00_lire_et_executer_un_programme\|← Introduction]] | [[Code et Développement/Programmation/Lecture de Code - Python/02_variables_entrees_sorties\|Variables, entrées, sorties →]] |
> |:---|---:|
%% nav-fin %%
# Méthode de trace
## Principe
Tracer un programme, c'est simuler manuellement son exécution : lire le code ligne par ligne, maintenir l'état des variables, et noter ce qui s'affiche.
## Les 3 étapes
**1. Identifier les entrées**
Repérer les `input()`. Lire la valeur fournie et l'affecter mentalement à la variable.
```python
n = int(input()) # données : 3 → n = 3
```
**2. Dérouler instruction par instruction**
Chaque ligne modifie l'état ou produit une sortie. Tenir un tableau de variables.
```
Ligne | n | i | Affichage
1 | 3 | — |
3 | 3 | 0 |
4 | 3 | 0 | 0
3 | 3 | 1 |
4 | 3 | 1 | 1
...
```
**3. Lire les `print()`**
Chaque `print(x)` produit une ligne de sortie. L'ordre des lignes est l'ordre d'exécution.
---
## Pièges fréquents
- **Sauter une ligne** : chaque ligne doit être exécutée dans l'ordre, même si elle semble "évidente". Ne pas sauter les affectations.
- **Oublier qu'une variable change** : après `x = x + 1`, la valeur de `x` est la nouvelle, pas l'ancienne.
- **Confondre la variable et sa valeur** : dans le tableau de trace, écrire la valeur concrète (`x = 3`), pas le nom (`x = x`).
- **Ne pas entrer dans un bloc** : si la condition est fausse, le bloc indenté est ignoré — à noter explicitement dans la trace.
---
## Exemple complet
```python
n = int(input()) # entrée : 4
total = 0
for i in range(1, n+1):
total = total + i
print(total)
```
| Tour | i | total |
|---|---|---|
| — | — | 0 |
| 1 | 1 | 1 |
| 2 | 2 | 3 |
| 3 | 3 | 6 |
| 4 | 4 | 10 |
**Sortie : `10`**
**À manipuler :** suivez la même trace ligne par ligne.
```sq-trace
n = int(input()) # entrée : 4
total = 0
for i in range(1, n+1):
total = total + i
print(total)
---
1 | n = 4 |
2 | total = 0 |
3 | i = 1 |
4 | total = 1 |
3 | i = 2 |
4 | total = 3 |
3 | i = 3 |
4 | total = 6 |
3 | i = 4 |
4 | total = 10 |
5 | | 10
```
%% nav-debut : généré par gen_navigation.py, ne pas modifier à la main %%
> [!nav]
> ↩ [[Code et Développement/Programmation/Lecture de Code - Python/Lecture de code - Python|Accueil · Lecture de code - Python]]
>
> | [[Code et Développement/Programmation/Lecture de Code - Python/00_lire_et_executer_un_programme\|← Introduction]] | [[Code et Développement/Programmation/Lecture de Code - Python/02_variables_entrees_sorties\|Variables, entrées, sorties →]] |
> |:---|---:|
%% nav-fin %%