bugl
bugl
HomeLearnPatternsSearch
HomeLearnPatternsSearch

Loading lesson path

Learn/Python/Foundations
Python•Foundations

Python Function Arguments

Concept visual

Python Function Arguments

keys map to buckets01kiwi:12pear:43apple:7grape:9

Arguments

Information can be passed into functions as arguments. Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you want, just separate them with a comma. The following example has a function with one argument (fname). When the function is called, we pass along a first name, which is used inside the function to print the full name:

Example

A function with one argument:

def my_function(

fname ):

print(

fname + " Refsnes") my_function("

Emil

") my_function("

Tobias

") my_function("

Linus

")

Parameters vs Arguments

The terms parameter and argument can be used for the same thing: information that are passed into a function.

From a function's perspective:

A parameter is the variable listed inside the parentheses in the function definition. An argument is the actual value that is sent to the function when it is called.

Example

def my_function(name): # name is a parameter print("Hello", name)
my_function("Emil") # "Emil" is an argument

Number of Arguments

By default, a function must be called with the correct number of arguments. If your function expects 2 arguments, you must call it with exactly 2 arguments.

Example

This function expects 2 arguments, and gets 2 arguments::

def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")

If you try to call the function with the wrong number of arguments, you will get an error:

Example

This function expects 2 arguments, but gets only 1:

def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")

Default Parameter Values

You can assign default values to parameters. If the function is called without an argument, it uses the default value:

Example

def my_function(name
= "friend"

):

print("Hello", name)
my_function("Emil")
my_function("Tobias")
my_function()
my_function("Linus")

Example

Default value for country parameter:

def my_function(country
= "Norway"

):

print("I am from", country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Keyword Arguments

You can send arguments with the key

= value syntax.

Example

def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function(animal = "dog", name = "Buddy")

This way, with keyword arguments, the order of the arguments does not matter.

Example

def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function(name = "Buddy", animal = "dog")

The phrase

Keyword Arguments is often shortened to kwargs in Python documentation.

Positional Arguments

When you call a function with arguments without using keywords, they are called positional arguments. Positional arguments must be in the correct order:

Example

def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function("dog", "Buddy")

The order matters with positional arguments:

Example

Switching the order changes the result:

def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function("Buddy", "dog")

Previous

Python Functions

Next

Python *args and **kwargs