Maison >développement back-end >Tutoriel Python >Comment puis-je garantir une saisie utilisateur valide dans mon programme ?
Demande de saisie utilisateur jusqu'à ce qu'une réponse valide soit fournie
En programmation, il est crucial de s'assurer que la saisie utilisateur est valide avant de procéder à d'autres opérations. Si des données non valides sont acceptées, cela peut entraîner des résultats incorrects ou des plantages du programme. Explorons des techniques efficaces pour gérer la validation des entrées utilisateur et prévenir les erreurs.
Exceptions et bouclage
Une approche consiste à utiliser des blocs try et except pour détecter les erreurs qui peuvent survenir lorsque analyser les entrées de l'utilisateur. En encapsulant l'opération d'analyse des entrées dans une boucle while, vous pouvez demander en continu une entrée jusqu'à ce qu'elle réponde aux critères souhaités.
while True: try: age = int(input("Please enter your age: ")) except ValueError: print("Sorry, I didn't understand that.") continue else: break
Logique de validation personnalisée
De plus Pour la gestion des exceptions, vous pouvez implémenter vos propres règles de validation pour vérifier l'entrée. Par exemple, vous pouvez rejeter les valeurs négatives ou en dehors d'une plage spécifique.
while True: data = input("Pick an answer from A to D:") if data.lower() not in ('a', 'b', 'c', 'd'): print("Not an appropriate choice.") else: break
Gestion des erreurs pour tous les cas
Pour une validation complète des entrées, vous pouvez combiner gestion des exceptions avec des règles personnalisées dans une seule boucle. Cela garantit que les erreurs d'analyse et les valeurs invalides sont détectées et traitées de manière appropriée.
while True: try: age = int(input("Please enter your age: ")) except ValueError: print("Sorry, I didn't understand that.") continue if age < 0: print("Sorry, your response must not be negative.") continue else: break
Encapsulation et fonctions réutilisables
Si vous rencontrez fréquemment le besoin de validation des entrées utilisateur , il est avantageux d'encapsuler le code pertinent dans une fonction distincte. Cela permet la réutilisation du code et simplifie le processus de collecte des entrées.
def get_non_negative_int(prompt): while True: value = int(input(prompt)) if value >= 0: break return value age = get_non_negative_int("Please enter your age: ")
Extensibilité et validation des entrées génériques
En étendant davantage le concept, vous pouvez créer un système hautement fonction de validation d'entrée polyvalente qui couvre un large éventail d'exigences.
def sanitised_input(prompt, type_=None, min_=None, max_=None, range_=None): while True: ui = input(prompt) try: if type_ is not None: ui = type_(ui) except ValueError: continue # Perform further validation checks and return valid input if all criteria are met.
Pièges courants et meilleurs Pratiques
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!