2016-08-06 4 views
-1

Я строю игру, где компьютер знает, какое животное фермы имеет в виду. Он задает вам вопросы, чтобы догадаться о вашем фермерском животном. Но у меня ошибка, и я не знаю, как это исправить.Ошибка синтаксиса "elif"

Мой код:

qs_one = raw_input("Do your animal walk on two legs? answar 'yes' or 'no'") 
if qs_one == "yes": 
    qs_two = raw_input("Do your animal have a white skin? answar 'yes' or 'no'") 
    if qs_two == "yes": 
     print "Your animal is a goose!" 
    elif qs_two == "no": 
     print "Your animal is a chicken!" 
    else: 
     print "Error, try again." 
elif qs_one == "no": 
    qs_two = raw_input("Do your animal have horns? answar 'yes' or 'no'") 
    if qs_two == "yes": 
     qs_tree = raw_input("Do your animal have stains? answar 'yes' or 'no'") 
     if qs_tree == "yes": 
      print "Your animal is a cow!" 
     elif qs_tree == "no": 
      qs_four = raw_input("Do your animal have goatee? answar 'yes' or 'no'") 
      if qs_four == "yes": 
       print "Your animal is a goat!" 
      elif qs_four == "no": 
       print "Your animal is a bull!" 
      else: 
       print "Error, try again." 
     else: 
      print "Error, try again." 
    elif qs_two == "no": 
     qs_tree = raw_input("Do your animal have a pink skin? answar 'yes' or 'no'") 
     if qs_tree == "yes": 
      print "Your animal is a pig!" 
     elif: # <- ERROR HERE 
      qs_four = raw_input("Can you ride your animal? answar 'yes' or 'no'") 
      if qs_four == "yes": 
       print "Your animal is a horse!" 
      elif qs_four == "no": 
       qs_five = raw_input("Does your animal have big ears? answar 'yes' or 'no'") 
       if qs_five == "yes": 
        "Your animal is a rabbit!" 
       elif qs_five == "no": 
        "Your animal is a sheep!" 
       else: 
        print "Error, try again." 
      else: 
       print "Error, try again." 
     else: 
      print "Error, try again." 
    else: 
     print "Error, try again." 
else: 
    print "Error, try again." 

Ошибка:

Traceback (most recent call last): 
File "python", line 30 
elif: 
    ^
SyntaxError: invalid syntax`` 
+1

Ваш отступы повсюду. Пожалуйста, убедитесь, что у вас есть * правильный * отступ в вашем вопросе, чтобы мы могли воспроизвести вашу проблему. –

+1

Я думаю, что команда, которую вы ищете, иначе, потому что elif - это оператор else if, требующий условия. – thesonyman101

ответ

4

Вы должны иметь условие к elif, т.е.

elif condition_is_true: 
    *do something* 

Я думаю, что вы хотите сделать, это использование elif qs_tree=='no':. Если «да», это свинья, если «нет», это что-то другое, и каждый другой ответ должен дать сообщение «Ошибка, попробуйте еще раз».

+0

Наверное, просто нужно 'else:', поскольку предыдущее было 'if qs_tree ==" yes ":' на вопрос 'yes 'или'' no''. – martineau

+0

@martineau Я думаю, он хочет задать вопрос «да/нет/нет», так как только два правильных ответа - «да» и «нет». Все остальное должно быть уловлено 'else'. – pathoren

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