CodeBlanks Logo Icon CodeBlanks

Default parameters

Learn parameters with default values.

Default parameters

A parameter can have a default value; if not passed at the call, the default is used:

def greet(name, greeting="Welcome"):
    print(greeting, name)

greet("Alex")            # Welcome Alex
greet("Alex", "Hello")    # Hello Alex

Default parameters must be on the right; otherwise a SyntaxError is raised. This makes the call flexible.

Multiple defaults

Multiple parameters can have defaults:

def create_user(name, role="user", active=True):
    return {"name": name, "role": role, "active": active}

All right-hand parameters can have defaults. At the call you can skip any of them; they get their default value.

This simplifies the call in functions with many options.

Practice Write a function with a default parameter

Define a function called greet with name and greeting (default "Hello") parameters that does print(greeting, name). Call it with greet("Ayse").

Starter code

main.py
# Define the greet function

Sample solution

main.py
def greet(name, greeting="Hello"):
    print(greeting, name)
greet("Ayse")

Expected output

Hello Ayse

Questions and answers

Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.

1 Match default parameter features

Term Meaning
greeting="Welcome" Default value
on the right Position
greet("Alex") Call with default
SyntaxError Error if on left

2 Complete the default parameter

Question
def greet(name, greeting=____):
    print(greeting, name)
Answer
def greet(name, greeting="Welcome"):
    print(greeting, name)

Explanation: greeting="Welcome" sets a default value.

3 Which statement is correct?

  • Default parameters go on the left
  • Default parameters are not allowed
  • Default parameters slow the function
  • Default parameters go on the right Correct answer

Explanation: Default parameters must go on the right; otherwise SyntaxError.

All lessons in Beginner