Python 6.4 : Exercice : Plusieurs questions

Cet exercice consiste à boucler plusieurs fois sur notre fonction question() pour proposer plusieurs questions à l'utilisateur. L'objectif est d'afficher avant chaque question un compteur du type « Question 1 sur 4 », « Question 2 sur 4 », etc. C'est une excellente mise en pratique de la boucle for combinée avec une constante de configuration.

Boucle for avec compteur

Le principe est de définir une constante NOMBRE_QUESTIONS qui contrôle le nombre total de questions, puis d'utiliser range() pour itérer ce nombre de fois. À chaque itération, on affiche le numéro de la question avant de poser la question elle-même :

NOMBRE_QUESTIONS = 4
							
							for i in range(NOMBRE_QUESTIONS):
							    print(f"Question {i + 1} sur {NOMBRE_QUESTIONS}")
							    question()

La fonction range(n) génère une séquence d'entiers de 0 à n-1. Comme on veut afficher des numéros de 1 à n pour l'utilisateur (plus naturel), on ajoute 1 à i dans l'affichage. C'est un piège classique pour les débutants : range commence à 0 et s'arrête juste avant n, donc range(4) produit 0, 1, 2, 3 et non pas 1, 2, 3, 4.

Les bonnes pratiques mises en œuvre :

  • Une constante NOMBRE_QUESTIONS centralise la configuration
  • Le range exclut la borne supérieure : range(4) donne 0 à 3
  • On ajuste avec i + 1 pour un affichage humain
  • La fonction question() est appelée à chaque tour
  • Une f-string permet de formater proprement le compteur

Si on lance le programme, on obtient bien quatre additions consécutives à résoudre, avec un compteur clair pour suivre la progression. Pour le moment, le score final n'est pas calculé : chaque question affiche juste correct ou incorrect indépendamment. À très bientôt pour la prochaine vidéo concernant le calcul du nombre de bonnes réponses et l'affichage du score final.

En résumé

Cet exercice en Python démontre comment créer une boucle pour afficher plusieurs questions numérotées de façon dynamique. L'objectif est de construire une boucle `for` qui parcourt un nombre défini de questions et affiche le numéro de la question actuelle par rapport au total. L'exemple montre l'implémentation concrète avec affichage du format « question X sur Y » et la gestion des entrées utilisateur pour valider les réponses.

Points clés

  • Utiliser une constante pour définir le nombre de questions à poser
  • Implémenter une boucle `for` avec `range()` pour itérer sur le nombre de questions
  • Formater l'affichage avec un `print()` qui montre la progression (numéro courant / total)
  • Capturer les réponses de l'utilisateur dans la boucle pour valider ses calculs
  • Structurer le code en boucles imbriquées pour poser plusieurs questions jusqu'à obtention d'une réponse correcte

Questions fréquentes

Comment afficher « question X sur Y » dans une boucle Python ?

Utilisez une f-string ou format classique avec la boucle `for` : `print(f'question {i+1} sur {nombre_questions}')`. Le `i+1` permet de commencer le comptage à 1 au lieu de 0.

Quelle est la différence entre `range(nombre)` et créer une constante pour le nombre de questions ?

Créer une constante rend le code plus lisible et maintenable. Si vous devez changer le nombre de questions, vous ne modifiez qu'une seule ligne au lieu de plusieurs appels `range()`.

Comment valider que la réponse de l'utilisateur est correcte avant de passer à la question suivante ?

Ajoutez une boucle `while` interne qui redemande la réponse jusqu'à ce qu'elle soit correcte, puis utilisez un `break` pour passer à la question suivante.