Python 5.8 : Limiter le nombre de vies : boucle for

Cette leçon prolonge la précédente en refaisant le même exercice de jeu, mais cette fois avec une boucle for au lieu de while. Cela permet de comparer les deux approches et de découvrir les limites de la boucle for, notamment le fait qu'elle exécute un nombre fixé d'itérations.

Sortir d'une boucle for avec break

Avec for, on peut décider d'avance le nombre maximum d'essais : par exemple, 5 tentatives pour trouver le nombre magique. Le problème est que la boucle continuera à s'exécuter même après que l'utilisateur ait gagné, sauf si on utilise l'instruction break pour sortir immédiatement, ou un drapeau gagne pour conditionner le message final :

nombre_de_vies = 5
							gagne = False
							
							for i in range(nombre_de_vies):
							    nombre = demander_nombre(1, 10)
							    if nombre == nombre_magique:
							        print("Bravo, vous avez gagné")
							        gagne = True
							        break
							    elif nombre > nombre_magique:
							        print("Le nombre magique est plus petit")
							    else:
							        print("Le nombre magique est plus grand")
							
							if not gagne:
							    print(f"Vous avez perdu, le nombre magique était {nombre_magique}")

Le break permet de sortir immédiatement de la boucle dès que l'utilisateur trouve. Le drapeau gagne permet ensuite de différencier le cas victoire du cas où l'utilisateur a épuisé ses 5 essais. Sans ces deux mécanismes, le programme afficherait à tort un message d'échec même quand l'utilisateur a gagné dès le premier essai.

Les patterns clés à retenir :

  • for ... in range(n) pour un nombre fixe d'itérations
  • break pour sortir immédiatement de la boucle
  • continue pour passer à l'itération suivante
  • Drapeau booléen pour suivre un état (gagne, trouve...)
  • Le for est adapté quand on connaît le nombre d'essais à l'avance

Nous avons maintenant deux versions du jeu : une avec while pour des essais illimités, et une avec for pour un nombre limité de tentatives. Les deux approches sont valides selon le besoin métier. À très bientôt pour une nouvelle section concernant les jeux mathématiques.

En résumé

Cette leçon Python 5.8 enseigne comment limiter le nombre de vies d'un joueur en utilisant une boucle for. Le code décrémente le nombre de vies à chaque mauvaise réponse et utilise l'instruction break pour sortir de la boucle quand le joueur gagne. L'approche est comparée avec une implémentation utilisant une boucle while pour montrer deux façons équivalentes de résoudre le même problème.

Points clés

  • Utiliser une boucle for avec range pour itérer et contrôler les tentatives du joueur
  • Décrémenter le compteur de vies à chaque réponse incorrecte du joueur
  • Utiliser l'instruction break pour sortir prématurément quand le joueur gagne
  • Valider que le nombre saisi par l'utilisateur est dans l'intervalle défini (min et max)
  • Comparer deux stratégies équivalentes : boucle for et boucle while pour le même jeu

Questions fréquentes

Comment limiter le nombre de vies avec une boucle for en Python?

Utilisez une variable pour compter les vies perdues et décrémentez-la à chaque mauvaise réponse. Utilisez break pour sortir de la boucle quand le joueur gagne, ce qui empêche les vies de diminuer davantage.

Quelle est la différence entre utiliser une boucle for et une boucle while pour ce problème?

Les deux approches fonctionnent correctement. La boucle for itère sur un range prédéfini, tandis que la boucle while continue tant qu'une condition est vraie. Ici, elles permettent d'obtenir le même comportement: limiter les tentatives jusqu'à ce que le joueur gagne ou perde ses vies.

Comment vérifier si le nombre saisi par le joueur est valide?

Validez que le nombre entré par l'utilisateur se situe dans l'intervalle défini (entre le minimum et le maximum). Si le nombre n'est pas dans cette plage, le nombre de vies ne diminue pas et le joueur peut réessayer.