# 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.