Rufus
Rufus

Reputation: 11

Python: while loop within a while loop

I'm wondering why this code does not work.

loop = -10
loop2 = -10
while loop <= 10:
    while loop2 <= 10:
        if current_block:
            block = turtle.Turtle()
            block.shape("square")
            block.color("white")
            block.shapesize(stretch_wid=0.85, stretch_len=0.85)
            block.penup()
            block.goto(loop*20, loop2*20)
        loop2 += 1
    loop += 1

What I want to do is to create a 20x20 grid of squares centered at (0,0). Right now, only a line of squares are created at x-200

Upvotes: 1

Views: 276

Answers (1)

Mureinik
Mureinik

Reputation: 311028

The loop2 variable retains its value, so the inner loop is not executed after the first iteration of the outer loop. You need to reinitialize loop2 in every iteration of the outer loop:

loop = -10
while loop <= 10:
    loop2 = -10 # Here!
    while loop2 <= 10:
        if current_block:
            block = turtle.Turtle()
            block.shape("square")
            block.color("white")
            block.shapesize(stretch_wid=0.85, stretch_len=0.85)
            block.penup()
            block.goto(loop*20, loop2*20)
        loop2 += 1
    loop += 1

Upvotes: 1

Related Questions