2015-05-26 6 views
0

В настоящее время я пишу код, который необходимо повторить, но только если пользователь хочет его повторить. Я поместил код в «while» и попытался использовать инструкции if для повторения кода, если пользователь вводит «да» или прерывает цикл, если пользователь вводит «нет», однако цикл не прерывается независимо от того, что вводит пользователь. Вот то, что я пытался добраться до работы:установить переменную, чтобы принимать только определенные строки на python и прерывать while, используя if/else

while True: 
    question=input("do you like maths?") 
    re_do=input("Would you like to check anything else?") 
    if re_do.lower=="no": 
     break 
    elif re_do.lower=="yes": 
     continue 

мне нужен этот вопрос будет повторяться, если они входят в нечто иное, чем «да» или «нет», так что мне было интересно, есть ли способ, что я может установить переменную только для принятия «да» или «нет», чтобы я мог использовать «try» и «except».

+3

Попробуйте добавить скобки для вашего 'lower's:' если re_do.lower() == «нет»: ' – Kevin

+0

спасибо, что зафиксировала первую проблему - Я не знаю, как раньше я этого не видел, ты хоть представляешь, как я могу сделать вторую часть вопроса? – Sofia

+1

Также, связанный: [Прошу пользователя ввести данные, пока они не дадут действительный ответ] (http://stackoverflow.com/q/23294658/953482) – Kevin

ответ

0

После некоторой помощи от различных пользователей в разделе комментариев и от @Joe R Я нашел ответ на этот вопрос:

while True: 
    question=input("do you like maths?") 
    while True: 
     re_do=input("Would you like to check anything else?") 
     if re_do.lower=="no": 
      quit() 
     elif re_do.lower=="yes": 
      break 
     elif re_do.lower() !="no" and re_do.lower() !="yes": 
      print("Yes or No answer only: ") 
      continue 
1

Этот ответ основан на вашем исходном вопросе, который я не уверен, полностью ли я понимаю. Также в комментариях я пытался понять, что вы пытаетесь достичь, и я не уверен, если я получу его, но я надеюсь, что это помогает:

while True: 
    question=input("do you like maths?") 
    re_do=input("Would you like to check anything else?") 
    if re_do.lower() =="yes": 
     continue 
    elif re_do.lower() =="no": 
     print "Goodbye!" 
     break 
    elif re_do.lower() !="no" and re_do.lower() !="yes": 
     x = input("Yes or No answer only: ") 
     if x == "yes": 
      continue 
     else: 
      print "Goodbye" 
      break 
+0

Спасибо, это очень помогло, но мне не нужен код, чтобы повторить «нравится ли вам математика», пока он не попросит пользователя, если «хотите проверить что-нибудь еще», поэтому немного приспособили его. Для справок в будущем вы знаете, можно ли установить переменную, чтобы принимать только определенный вход, кроме использования if/elif? – Sofia

+0

Я добавил то, что я изменил в качестве ответа, я был бы признателен, если бы вы могли прочитать его и прокомментировать, если у вас есть способы, чтобы я мог его улучшить – Sofia

 Смежные вопросы

  • Нет связанных вопросов^_^