
Exemple concret : afficher les nombres de 1 à 5
Apprenez à utiliser une boucle `for` et la fonction `range()` en Python pour afficher une séquence de nombres, comme les entiers de 1 à 5. Un exercice fondamental sur les boucles.
Objectif : afficher une séquence numérique simple
L'un des premiers cas d'utilisation que l'on rencontre pour les boucles est la génération et l'affichage d'une séquence de nombres. Cet exercice simple consiste à écrire un programme Python qui affiche les nombres entiers de 1 à 5, chacun sur une nouvelle ligne. Bien que trivial, il permet de bien comprendre le mécanisme de la boucle `for` combinée à la fonction `range()`.
Le résultat attendu du programme est :
1
2
3
4
5Pour réaliser cela, nous n'avons pas besoin d'interaction utilisateur (pas de `input()`), mais nous devons configurer correctement notre boucle pour qu'elle effectue le bon nombre d'itérations et que la variable d'itération prenne les valeurs souhaitées (1, 2, 3, 4, et 5).
Etape 1 : configurer `range()` pour la séquence souhaitée
Nous voulons afficher les nombres de 1 (inclus) à 5 (inclus). Rappelons comment fonctionne `range(start, stop)` : il génère des nombres à partir de `start` jusqu'à `stop-1`. Donc, si nous voulons inclure 5, la valeur `stop` de notre `range()` doit être `5 + 1`, c'est-à-dire `6`.
La séquence de nombres que nous voulons générer est donc `1, 2, 3, 4, 5`. Cela correspond à `range(1, 6)`.
# Si nous voulions juste voir ce que range(1, 6) produit :
# print(list(range(1, 6))) # Afficherait [1, 2, 3, 4, 5]Cette configuration de `range()` fournira à notre boucle `for` les valeurs correctes à afficher lors de chaque itération.
Etape 2 : utiliser la boucle `for` pour itérer et `print()` pour afficher
Maintenant que nous savons comment générer la séquence de nombres, nous pouvons l'utiliser dans une boucle `for`. Nous avons besoin d'une variable d'itération (appelons-la `nombre_actuel` ou simplement `i` ou `num` pour faire court) qui prendra successivement chaque valeur de la séquence générée par `range(1, 6)`.
A l'intérieur de la boucle, pour chaque valeur prise par `nombre_actuel`, nous utiliserons la fonction `print()` pour l'afficher. Par défaut, `print()` ajoute un saut de ligne à la fin, ce qui est exactement ce que nous voulons pour afficher chaque nombre sur une nouvelle ligne.
# Boucle for pour itérer sur les nombres de 1 à 5
for nombre_actuel in range(1, 6):
# A chaque itération, nombre_actuel prend une valeur de la séquence 1, 2, 3, 4, 5
print(nombre_actuel)Code complet et explication de l'exécution
Le programme complet est donc très simple :
# Programme pour afficher les nombres de 1 à 5
print("Affichage des nombres de 1 à 5 :")
# Utilisation de la boucle for avec range()
for nombre_actuel in range(1, 6):
print(nombre_actuel)
print("Fin de l'affichage.")Voici le déroulement de l'exécution de la boucle :
- La boucle `for` commence. `range(1, 6)` est évalué.
- Première itération : `nombre_actuel` prend la première valeur de `range(1, 6)`, qui est `1`. `print(nombre_actuel)` (donc `print(1)`) est exécuté. Sortie : `1`.
- Deuxième itération : `nombre_actuel` prend la valeur suivante, `2`. `print(nombre_actuel)` (donc `print(2)`) est exécuté. Sortie : `2`.
- Troisième itération : `nombre_actuel` prend la valeur suivante, `3`. `print(nombre_actuel)` (donc `print(3)`) est exécuté. Sortie : `3`.
- Quatrième itération : `nombre_actuel` prend la valeur suivante, `4`. `print(nombre_actuel)` (donc `print(4)`) est exécuté. Sortie : `4`.
- Cinquième itération : `nombre_actuel` prend la valeur suivante, `5`. `print(nombre_actuel)` (donc `print(5)`) est exécuté. Sortie : `5`.
- La séquence `range(1, 6)` est épuisée. La boucle `for` se termine.
- Le programme exécute `print("Fin de l'affichage.")`.
Cet exemple, bien que basique, est crucial pour comprendre le fonctionnement des boucles `for` contrôlées par `range()`. Vous pouvez facilement l'adapter pour afficher d'autres séquences de nombres (par exemple, les 10 premiers nombres pairs, un compte à rebours, etc.) en modifiant simplement les arguments de la fonction `range()`.