2016-03-28 5 views
2

Ich bekomme immer einen Syntaxfehler bei der if-Anweisung, und ich bin mir nicht sicher, warum ich den Fehler bekomme. Kann jemand helfen?Syntaxfehler bei der if/elif-Anweisung, nicht sicher, was den Fehler verursacht

def draw_square(self, loc, width): 

    loc = (x, y) 
    for i in range (3): 
     width(width) 
     turtle.forward(60) 
     turtle.right(90) 
     turtle.forward(random.randint(10,100)) 
     turtle.right(90) 
     turtle.forward(60) 
     turtle.right(90) 
     turtle.forward(random.randint(10, 100)) 

    if turtle.xcor <or> x: 
     x = turtle.xcor 
    elif turtle.ycor <or> y: 
     y = turtle.ycor 

    return self.loc, self.width 
+0

Welche Logik-Test versuchen Sie zu tun? 'turtle.xcor < or > x' ist keine gültige Syntax. Aber wenn Sie überprüfen möchten, ob es größer oder kleiner ist als ('if turtle.xcor x:'), dann ist die 'elif'-Klausel das einzige Mal, wenn' turtle.xcor == x' ... Selbst dann bin ich nicht sicher, was das tut – roganjosh

+1

Verwenden Sie '! =' Operator stattdessen –

+0

Was sind 'x' und' y' an erster Stelle? Globals? Wenn dies der Fall ist, benötigen Sie eine "globale x, y" -Zeile am oberen Rand Ihrer Funktion, damit sie ordnungsgemäß aktualisiert werden. – chepner

Antwort

1

In tink Ihre Syntax ist ungültig:

if turtle.xcor <or> x: 
    x = turtle.xcor 
elif turtle.ycor <or> y: 
    y = turtle.ycor 

Probieren Sie es ändern:

if turtle.xcor < x or turtle.xcor > x: 
    x = turtle.xcor 
elif turtle.ycor < y or turtle.ycor > y: 
    y = turtle.ycor 
+0

Verwenden Sie '! =' Operator stattdessen :) –

+0

Dies ist genau das gleiche wie mein Kommentar. Aber selbst dann könnte es ein Problem mit dem "if/elif" geben, abhängig davon, was die beabsichtigte Ausgabe ist. – roganjosh

+0

Ja, ich habe die Antwort bearbeitet, manchmal sende ich eine Frage/Antwort/Kommentar und ist schlecht und ich muss es etwa 3 mal bearbeiten :) –

Verwandte Themen