[Tutor] function error

Emile van Sebille emile at fenx.com
Sat Oct 2 20:42:16 CEST 2010


On 10/2/2010 10:45 AM Steve Willoughby said...
> On 02-Oct-10 10:32, Emile van Sebille wrote:

Well, not really -- this is the OPs code.  I was responding to Joel's 
comment of not seeing the entire post.

>>> File "my_turtle.py", line 19
>>> if (abs(turtle.position()[0]) > turtle.window_height()/2) or
>>> ^
>>> SyntaxError: invalid syntax
>
> How does Python know that the next line is the continuation of your if
> statement, instead of the beginning of a new line of code?

Because of the paren count -- I didn't actually parse the OPs code and 
so I assumed that, but now I'll assume the line break probably resulted 
post send.

Continuing-to-assume-ly y'rs,

Emile


Here's the code fragment now paren'd...

import turtle, random

def checkForward(distance):
         old_position = turtle.position()
         turtle._pen.up()
         # no show/hide turtle methods in my turtle module !
         turtle.forward(distance)
         forward_failed = outOfBounds()
         turtle.setx(old_position[0]); turtle.sety(old_position[1])
         turtle._pen.down()
         # no show/hide turtle methods in my turtle module !
         if outOfBounds() == 'false':
                 turtle.forward(distance)

def stuck():
         return forward_failed

def outOfBounds():
         if ((abs(turtle.position()[0])>turtle.window_height()/2) or
(abs(turtle.position()[1])>  turtle.window_width()/2)):
                 return "true"
         else:
                 return "false"

def randomMove2(d1, d2, a1, a2):
          while 1:
                  turtle.left(random.uniform(a1,a2))
                  checkForward(random.uniform(d1,d2))
                  if outOfBounds() == 'true':
                          turtle.right(180)





More information about the Tutor mailing list