Skip to main content

Section 17.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 of learning 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 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 17.5.1.

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, and then has them each do a hop before doing a forward movement.

Warning 17.5.2.

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

Checkpoint 17.5.3.

    Which turtle made the line going North (up)?
  • turtleName
  • There is no one turtle named turtleName. turtleName will be used to name 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.

Checkpoint 17.5.4.

    This code sample makes a turtle called ray and then calls the spin procedure. What belongs in the blank to make the program work?
    def spin(who):
        ________.left(180)
    
    # Main part of the program
    from turtle import *
    ray = Turtle()
    
    spin(ray)
    
  • 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.
You have attempted of activities on this page.