/ / Python - pruebas de entrada válidas como no válidas - python, python-3.x

Python - pruebas de entrada válidas como inválidas - python, python-3.x

El problema que tengo es que cuando el usuario ingresa el archivo de clase, seguirá diciendo que es una entrada no válida. ¿Alguna idea de por qué sucede esto?

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.

Respuestas

2 para la respuesta № 1

input en Python 3 devuelve una cadena. Tu sentencia while compara esta cadena con enteros. Esto no funcionará porque las cadenas nunca se comparan igual a los enteros.

Puede solucionar este problema convirtiendo su entrada en un entero o comparándola con cadenas. Prefiero este último porque entonces no obtendrás una excepción en la entrada no entera.

Así que cambia tu instrucción while a la siguiente y tu código funcionará:

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