17.5. Using Repetition with Turtles¶
Learning Objectives:
Use a
for-each
loop to repeat steps with turtles.Introduce the range function
Generalize how to draw a polygon.
We already had a turtle draw a square. We repeated the lines in order to make the turtle go forward and turn four times. Another way to do this is to tell the computer to do something explicitly for a certain number of times by using a for
loop. The lines that you want to repeat in the for
loop must be indented by 4 spaces as shown below.
Run the code to see what it draws.
- [0,1,2,3]
- This still has four sides -- they are just numbered differently.
- [0,1,2]
- This would only draw 3 side since there are only 3 items in the list.
- [2,3,4,5]
- This still has four sides -- they are just numbered differently.
- [1,2,3,4,5]
- This will draw a square. The turtle will just go on to trace the first side twice.
csp-10-1-2: The numbers in the list [1,2,3,4]
are not important. It’s the fact that there are four items in the list that is important. Only one of these choices does not make a square. Which one? (It’s not cheating to actually try each of them and run the program each time!)
The following program uses a turtle to draw a rectangle as shown below, but the lines are mixed up. The program should do all necessary set-up and create the turtle. After that, iterate (loop) 2 times, and each time through the loop the turtle should go forward 175 pixels, turn right 90 degrees, go forward 150 pixels, and turn right 90 degrees. Drag the needed blocks of statements from the left column to the right column and put them in the right order with the correct indention. There may be additional blocks that are not needed in a correct solution. Click on Check to see if you are right. You will be told if any of the lines are in the wrong order or are the wrong blocks.
Since it doesn’t matter what’s in the list, just as long as there are four items, there is a special way of writing that loop. We use a range
function.
Run the code to see what it draws.
The range(n)
function returns an object (a range object) that produces the value from 0 to n - 1 when you use it in a for-each loop as shown below.
Run this code to see what it prints.