An argument is a value that is passed to a function when it is called. It might be a variable, value, or object passed to a function or method as input.
In python, there are 3 different types of arguments we can give a function.
Default arguments: arguments that are given default values
Positional arguments: arguments that can be called by their position in the function definition
Keyword arguments: arguments that can be called by their name.
Default argument
We can give a default argument by using an assignment operator =
. This will happen in the function declaration.
Example:
def find_dinner_total(food, drinks, tip):
print(food + drinks + tip =15)
Our function is called find_dinner_total()
which will calculate the total cost for dinner 🍽️. In our example our default argument is tip =15.
We can either choose to call the function without providing a value (this will result in the default value to be assigned) OR we can overwrite the default argument by entering a different value.
Positional argument
def find_diner_total(food, drinks, tip):
print(food + drinks + tip)
The first parameter passed is food
, second drinks
, and third is tip
.
When our function is called, the position of the arguments will be mapped based on the positions that are defined in the function declaration.
Example:
# $70 total for food
# $30 total for drinks
# 15 tip
diner_bill(70, 30, 15)
Keyword Arguments
In Keyword Arguments, where we refer to what each argument is assigned to in the function call.
Example:
dinner_bill(drinks=30, food=70, tip=15)
Top comments (3)
You can have arguments without defaults before arguments with defaults, but not after.
is fine but
Will throw the syntax error you show.
Thank you for mentioning this Matt!
I was not aware that you cannot have other arguments after default arguments. Thank you for mentioning this!