Python 2.12 : Improve our program with the loop

Cette vidéo améliore un programme Python existant en y intégrant une boucle while pour redemander la saisie tant que l'utilisateur n'entre pas une valeur valide. C'est un pattern de validation très courant : on insiste auprès de l'utilisateur jusqu'à obtenir une donnée correcte, plutôt que de planter ou d'accepter n'importe quoi.

Boucle while pour valider une saisie

Le principe : initialiser une variable à une valeur "invalide" (par exemple 0 pour l'âge), puis tourner dans une boucle while tant que cette variable reste invalide. À chaque tour, on redemande la saisie. Dès que l'utilisateur fournit une valeur correcte, on sort de la boucle et le programme continue.

age = 0
while age == 0:
    age_saisi = input("Quel est ton âge ? ")
    try:
        age = int(age_saisi)
    except ValueError:
        print("L'âge saisi n'est pas correct, recommencez.")
        age = 0
print("Vous avez " + str(age) + " ans")

La boucle continue à demander l'âge tant que la saisie n'est pas un entier valide. Quand l'utilisateur tape une lettre ou un mot, la conversion int() lève une exception, on affiche un message d'erreur et on remet age à 0 pour rester dans la boucle. Dès qu'un nombre valide est saisi, la condition age == 0 devient fausse et on sort.

Quelques variantes du pattern :

  • Utiliser une sentinelle booléenne : while not valide:
  • Limiter le nombre de tentatives avec un compteur
  • Ajouter une commande de sortie (taper "quit" pour abandonner)
  • Tester aussi la cohérence : âge entre 0 et 150 par exemple
  • Concaténer la sortie finale avec str(age) pour éviter l'erreur de type

Ce pattern de validation est universel : on le retrouve dans tous les formulaires d'inscription, les saisies de mots de passe, les confirmations utilisateur. Il combine deux notions essentielles : la boucle while et la conversion de types. La prochaine vidéo abordera la boucle for.

Summary

This lesson demonstrates how to improve a Python program by implementing a while loop for input validation. The example walks through creating a loop that repeatedly prompts the user to enter their age until a valid input is received. When invalid data is entered, the program displays an error message and returns to the prompt, continuing execution until the user provides a correct value before moving forward with the program.

Key points

  • A while loop allows you to repeat code execution until a specific condition is met, making it ideal for input validation
  • Invalid user input triggers an error message and re-prompts without advancing the program
  • Variables must be initialized before the loop to control program flow properly
  • Proper indentation within the loop block determines which statements repeat during each iteration
  • Once valid input is received, the loop terminates and the program continues normally
  • This pattern prevents the program from crashing or accepting invalid data by enforcing constraints at runtime

FAQ

How does a while loop validate user input?

A while loop checks if input meets specific conditions (e.g., age is a valid number). If the condition fails, it displays an error message and repeats the prompt until valid input is received.

What happens when the user enters invalid data?

The program displays an error message, the while loop repeats, and the user is asked to enter data again. The program does not progress until valid input is provided.

How does the program exit the while loop?

The loop exits when the user enters data that satisfies the validation condition. Once the loop ends, the program continues with subsequent statements and processes the valid input.