Validando strings de entrada do usuário em Python
Por isso, pesquisei praticamente todas as permutações das palavras "string", "python", "validate", "user input" e assim por diante, mas ainda não encontrei uma solução que funcione para mim.
Meu objetivo é perguntar ao usuário se deseja ou não iniciar outra transação usando as strings "yes" e "no", e imaginei que a comparação de strings seria um processo bastante fácil no Python, mas algo não está funcionando certo. Eu estou usando o Python 3.X, então a entrada deve estar levando em uma string sem usar entrada bruta, tanto quanto eu entendo.
O programa irá sempre retroceder entradas inválidas, mesmo ao digitar 'yes' ou 'no', mas o mais estranho é que toda vez que eu inserir um string com> 4 caracteres de comprimento ou um valor int, ele será validado como válido entrada e reinicie o programa. Não encontrei uma maneira de obter uma entrada negativa válida.
endProgram = 0;
while endProgram != 1:
#Prompt for a new transaction
userInput = input("Would you like to start a new transaction?: ");
userInput = userInput.lower();
#Validate input
while userInput in ['yes', 'no']:
print ("Invalid input. Please try again.")
userInput = input("Would you like to start a new transaction?: ")
userInput = userInput.lower()
if userInput == 'yes':
endProgram = 0
if userInput == 'no':
endProgram = 1
Eu também tentei
while userInput != 'yes' or userInput != 'no':
Eu agradeceria não só a ajuda com o meu problema, mas se alguém tiver alguma informação adicional sobre como o Python lida com strings que seriam ótimas.
Desculpe se alguma outra pessoa já fez uma pergunta como essa, mas fiz o meu melhor para pesquisar.
Obrigado a todos!
~ Dave