Проверка пользовательских строк ввода в Python

Поэтому я искал практически каждую перестановку слов «string», «python», «validate», «user input» и т. Д., Но мне еще не удалось найти решение, которое работает для меня.

Моя цель состоит в том, чтобы подсказать пользователю, хотят ли они запустить другую транзакцию, используя строки «да» и «нет», и я подумал, что сравнение строк будет довольно простым процессом в Python, но что-то просто не работает правильно. Я использую Python 3.X, поэтому, насколько я понимаю, ввод должен принимать строку без использования необработанного ввода.

Программа всегда отбрасывает неверный ввод, даже при вводе «да» или «нет», но действительно странно то, что каждый раз, когда я вводю строку длиной> 4 символа или значение типа int, она проверяет его как действительный положительный введите и перезапустите программу. Я не нашел способ получить действительный отрицательный вклад.

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

Я также пытался

while userInput != 'yes' or userInput != 'no':

Я был бы очень признателен не только за помощь в решении моей проблемы, но и за то, что у кого-нибудь есть дополнительная информация о том, как Python обрабатывает строки, и это было бы здорово.

Извините заранее, если кто-то еще задал вопрос, подобный этому, но я сделал все возможное, чтобы искать.

Спасибо всем!

~ Dave

Ответы на вопрос(2)

Ваш ответ на вопрос