/ / Python - Tests d'entrée valides comme non valides - Python, Python-3.x

Python - Tests d'entrée valides comme invalides - Python, Python-3.x

Le problème que j’ai, c’est que lorsque l’utilisateur saisit le fichier de classe, il continuera à dire qu’il s’agit d’une entrée non valide. Avez-vous une idée du pourquoi?

classfile = input("Which class would you like to display: ") #Prompts the user to find out which wile to open
while classfile not in [1, 2, 3]: #Ensures the input it valid
print("There are only classes 1, 2 and 3 available.")
classfile = input("Which class would you like to display: ") #If input is not valid it will ask them to input it again.

Réponses:

2 pour la réponse № 1

input en Python 3 renvoie une chaîne. Votre instruction while compare cette chaîne à des entiers. Cela ne fonctionnera pas car les chaînes ne se comparent jamais égales aux entiers.

Vous pouvez résoudre ce problème en convertissant votre entrée en un entier ou en le comparant à une chaîne. Je préfère ce dernier parce qu’alors vous n’obtiendrez pas d’exception pour les entrées non entières.

Alors changez votre déclaration while en ceci et votre code fonctionnera:

while classfile not in ["1", "2", "3"]: