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 № 1input
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"]: