python: если запись не является приемлемым параметром для подсказки, как запросить

Im только удобная с петлями в данный момент, таким образом я пробовал, что я могу там с минимальным успехом. Если я попрошу пользователя, хотят ли они A, B или C, а пользователь вводит D, вместо того, чтобы просто сказать, что он недействителен и движется дальше, я бы хотел, чтобы программа снова спросила, пока не получит правильный ответ с использованием raw_input.

Благодаря!

2 Solutions collect form web for “python: если запись не является приемлемым параметром для подсказки, как запросить”

Вот анонимная функция, которая делает то, что вы хотите.

def get_user_choice(prompt, choices): while True: choice = raw_input(prompt) if choice in choices: return choice else: print 'choice must be in: {}'.format(choices) 

Используй это:

 >>> get_user_choice('choose an option in A, B, C: ', ['A', 'B', 'C']) choose an option in A, B, C: A 'A' >>> get_user_choice('choose an option in A, B, C: ', ['A', 'B', 'C']) choose an option in A, B, C: D choice must be in: ['A', 'B', 'C'] choose an option in A, B, C: B 'B' 

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

Или это

 answers = ['a', 'b','c'] while True: user_input = raw_input("Input> ") if user_input in answers: break print "'{0}'' has been chosen".format(user_input) 
  • Python lambda не запоминает аргумент в цикле
  • линейная обработка файлов, for-loop vs with
  • Изменение имен переменных с помощью Python для циклов
  • Python - используя для паузы для цикла
  • «Возврат» только в функции Возврат одного значения
  • Как работает Python for loop?
  • Что означает «для x в y или z:» в Python?
  • Область действия переменной python для цикла
  • Python - лучший язык программирования в мире.