5.5. Parameters¶
The formal name for an input to a function is parameter:
def hop(turtleName): # turtleName is a parameter
...
One of the trickiest parts to learning how to write and use procedures and functions is developing an accurate understanding of how parameters work. Think of parameters as variables in a procedure that are set by the procedure call. Just like any variable, parameters can hold any value. And, just like any other variable, when you use the name of a parameter, you are accessing the value that the parameter is holding.
When we call (use) a procedure, we must provide values for each of the parameters that it has. The values that we provide are known as the arguments.
...
hop(sue) # a procedure call using the sue turtle as the argument
When this procedure call happens, all the code from hop
will be executed. Any time we
encounter the parameter turtleName
, we will actually use the argument - sue
in its
place. This process of giving the procedure information by specifying arguments is known
as passing parameters to the procedure.
This system allows the procedure to work with any turtle. We can call hop(buster)
to
run hop
and when we do so, turtleName
will mean the turtle named buster
.
Note
Some people call parameters the formal parameters and arguments the actual parameters. We will stick to parameters and arguments to avoid confusion about what we mean when we just say “parameters”.
Try running this program below. It defines the hop
procedure. Then, the main part of
the program makes two turtles, has them mark their starting location, then has them each
do a hop before doing a forward movement.
Warning
The only variables you can use in a procedure are its parameters or new ones you create inside the procedures. It is an error to use variables from the main part of the program while writing the body of a procedure.
Think of each procedure as a self contained world. All that is known inside that world is what is passed into it as parameters.
Check Your Understanding
- turtleName
- There is no one turtle named turtleName. It will be used to name both sue during the first call to hop and buster during the second call to hop.
- sue
- No. That turtle goes to the East.
- buster
- Correct.
Which turtle made the line going North (up)?
- ray
- ray is the argument. To talk about the argument inside the procedure, we have to use the parameter's name.
- who
- Correct. Inside this procedure, who will be the name we use for whatever turtle is the argument in the function call.
- turtleName
- The parameter for this function is not called turtleName.
This code sample makes a turtle called ray and then calls the spin procedure. What belongs in the blank to make the program work?
1def spin(who):
2 ________.left(180)
3
4# Main part of the program
5from turtle import *
6space = Screen()
7ray = Turtle()
8
9spin(ray)