2016-08-06 12 views
-1

Ich baue ein Spiel, wo der Computer weiß, welches Nutztier Sie im Sinn haben. Er stellt Ihnen Fragen, um Ihr Nutztier zu erraten. Aber ich habe einen Fehler und ich weiß nicht, wie ich das beheben soll."Elif" Syntaxfehler

Mein Code:

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." 

Fehler:

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

Ihre Einrückung ist überall. Bitte stellen Sie sicher, dass Sie die * korrekte * Einrückung in Ihrer Frage haben, damit wir Ihr Problem reproduzieren können. –

+1

Ich denke, der Befehl, nach dem Sie suchen, ist anders, weil elif eine else if-Anweisung ist, die eine Bedingung erfordert. – thesonyman101

Antwort

4

Sie benötigen einen Zustand zu einem elif haben, das heißt

elif condition_is_true: 
    *do something* 

Ich denke, was Sie wollen zu tun ist, Verwenden Sie elif qs_tree=='no':. Wenn "Ja", ist es ein Schwein, wenn "Nein", ist es etwas anderes und jede andere Antwort sollte die "Fehler, versuche es erneut" -Nachricht geben.

+0

Vermutlich braucht nur ein 'else:' da vorher war 'if qs_tree == "yes": 'zu einer'' yes''- oder '' no''-Frage. – martineau

+0

@martineau Ich denke, er will eine Ja/Nein/Else-Frage, da die nur zwei gültige Antworten ja und nein sind. Alles andere muss vom "else" abgefangen werden. – pathoren