Итак, я искал почти каждую перестановку слов «строка», «python», «validate», «user input» и т. Д., Но мне еще не приходило в голову решение, которое работает для меня.Проверка строки ввода пользователя в Python
Моя цель - предложить пользователю указать, хотите ли они начать другую транзакцию, используя строки «да» и «нет», и я решил, что сравнение строк будет довольно простым процессом в Python, но что-то просто не работает правильно. Насколько я понимаю, я использую Python 3.X, поэтому вход должен воспринимать строку без использования сырого ввода.
Программа всегда будет отбрасывать недопустимый ввод, даже при вводе «да» или «нет», но действительно странно, что каждый раз, когда я ввожу строку a> 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
Ничего себе. Такая простая ошибка. Спасибо за быстрый ответ. Полагаю, иногда вам просто нужна вторая пара глаз, чтобы разглядеть вещи. – user2398870
Как примечание, вы могли бы помочь мне узнать, почему мой оригинальный метод while UserInput! = 'Yes' или userInput! = 'No': не работал? – user2398870
@ user2398870: Если 'userInput' установлен в' 'yes'', то'! = 'No'' является True. Это не то, что вы хотели проверить. :-) Изменение 'или' на 'и 'приведет к тому, что эта версия будет работать. –