2016-08-08 13 views
-3

Ich habe versucht, ein kleines Spiel zu machen, aber einige seltsame Fehler herausspringt ...Python 2 „Unexpected indent“ Fehler

Hier ist der Code:

while True: 

    print "======================MENU======================" 
    print "1 - Axali tamashis dawyeba:" 
    print "2 - Wesebi" 
    print "3 - Tamashis avtori" 

    menu = raw_input ("< ") 
    if menu == "3": 
     print "======================Avtori======================" 
     print "" 
     print "" 
     print "Tamashis avtoria - Sandro Stashevski" 
    elif menu == "2": 
     print "======================Wesebi======================" 
     print "" 
     print "" 
     print "Tamasshi aris 10 shekitxva. Tito shekitxvaze 4 savaraudo pasuxi." 
     print "Tqven agretve gaqvt 1 daxmareba: 50/50." 
    s11 == "A - Sidnei" 
    s12 == "B - Parizi" 
    s13 == "C - Berlini" 
    s14 == "D - Varshava" 
    daxmareba = "1 - 50/50 +" 
    elif menu == "1": 
     print "Shekitxva 1/10" 
     print "" 
     print "Ra hqvia Germaniis dedaqalaqs" 
     print s11, 
     print s12, 
     print s13, 
     print s14, 
     print "" 
     print daxmareba, 

Fehler erscheint am 25. Zeile aus. ..

elif menu == "1": 
    ^
SyntaxError: invalid syntax 

Antwort

1

Ihr Code einige Einzug Probleme hat, versuchen Sie dies:

s11 = "A - Sidnei" 
s12 = "B - Parizi" 
s13 = "C - Berlini" 
s14 = "D - Varshava" 
daxmareba = "1 - 50/50 +" 
while True: 

    print "======================MENU======================" 
    print "1 - Axali tamashis dawyeba:" 
    print "2 - Wesebi" 
    print "3 - Tamashis avtori" 

    menu = raw_input ("< ") 
    if menu == "3": 
     print "======================Avtori======================" 
     print "" 
     print "" 
     print "Tamashis avtoria - Sandro Stashevski" 
    elif menu == "2": 
     print "======================Wesebi======================" 
     print "" 
     print "" 
     print "Tamasshi aris 10 shekitxva. Tito shekitxvaze 4 savaraudo pasuxi." 
     print "Tqven agretve gaqvt 1 daxmareba: 50/50." 

    elif menu == "1": 
     print "Shekitxva 1/10" 
     print "" 
     print "Ra hqvia Germaniis dedaqalaqs" 
     print s11, 
     print s12, 
     print s13, 
     print s14, 
     print "" 
     print daxmareba, 
1

Python ist eine Sprache, bei der Einrückungen eine Rolle spielen. Es verwendet Einrückung, um zu identifizieren, wo ein bestimmter Block endet und ein neuer Block beginnt.

Im obigen Code sind die Zeilennummern 25-29 nicht einheitlich eingerückt. Es sollte die gleiche Einrückung wie die darüber liegenden Zeilen haben (weil es einen weiteren elif Block in Zeile 30 gibt). Außerdem müssen die Zeilen, die auf while True: folgen, ebenfalls eingerückt werden.

while True: 

    print "======================MENU======================" 
    print "1 - Axali tamashis dawyeba:" 
    print "2 - Wesebi" 
    print "3 - Tamashis avtori" 

    menu = raw_input ("< ") 
    if menu == "3": 
     print "======================Avtori======================" 
     print "" 
     print "" 
     print "Tamashis avtoria - Sandro Stashevski" 
    elif menu == "2": 
     print "======================Wesebi======================" 
     print "" 
     print "" 
     print "Tamasshi aris 10 shekitxva. Tito shekitxvaze 4 savaraudo pasuxi." 
     print "Tqven agretve gaqvt 1 daxmareba: 50/50." 
     s11 == "A - Sidnei" 
     s12 == "B - Parizi" 
     s13 == "C - Berlini" 
     s14 == "D - Varshava" 
     daxmareba = "1 - 50/50 +" 
    elif menu == "1": 
     print "Shekitxva 1/10" 
     print "" 
     print "Ra hqvia Germaniis dedaqalaqs" 
     print s11, 
     print s12, 
     print s13, 
     print s14, 
     print "" 
     print daxmareba, 

Stellen Sie auch sicher, konsistente weiße Leerzeichen zu verwenden. Mischen Sie keine Leerzeichen und Tab-Leerzeichen, was wiederum zu einem Einrückungsfehler führt.

0

Eine allgemeine Antwort:

Sie haben eine if ... elif ... elif ... else ... Konstrukt. Python erwartet, dass der Teil zwischen jedem if und else (gelesen elif als else if) als ein Block gelesen wird, möglicherweise mit weiter eingerückten Unterblöcken. Sie sollten also nicht haben

if True: 
    print 'foo' 
print 'I am not indented enough' 
elif False: 
    print 'I am never executed' 
print 'I should be indented' 
else: 
    print 'I am just as lonely as the elif stuff but at least I am indented' 

Die richtige Version von mein Code:

if True: 
    print 'foo' 
    print 'I am not indented enough' 
elif False: 
    print 'I am never executed' 
    print 'I should be indented' 
else: 
    print 'I am just as lonely as the elif stuff but at least I am indented'