Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Using Default Arguments in Python Functions
๐ Scenario: Imagine you are creating a simple greeting system for a website. Sometimes users provide their name, and sometimes they don't. You want to write a function that can greet users by name if given, or greet them with a friendly default message if no name is provided.
๐ฏ Goal: Build a Python function called greet that uses a default argument to greet a user by name if given, or greet with a default message if no name is provided.
๐ What You'll Learn
Create a function named greet with one parameter called name that has a default value of "Guest".
Inside the function, return a greeting string that says "Hello, {name}! Welcome!" using an f-string.
Call the function greet twice: once without any argument, and once with the argument "Alice".
Print the results of both function calls.
๐ก Why This Matters
๐ Real World
Default arguments help make functions flexible and easier to use in real-world programs where some information might be optional.
๐ผ Career
Understanding default arguments is important for writing clean, reusable code in software development jobs.
Progress0 / 4 steps
1
Create the greet function with a default argument
Write a function called greet that has one parameter named name with a default value of "Guest".
Python
Hint
Use the syntax def function_name(parameter=default_value): to create a function with a default argument.
2
Return a greeting message using the name parameter
Inside the greet function, write a return statement that returns the string "Hello, {name}! Welcome!" using an f-string.
Python
Hint
Use return f"Hello, {name}! Welcome!" to create a formatted string that includes the name variable.
3
Call the greet function with and without an argument
Call the function greet twice: once without any argument and once with the argument "Alice". Store the results in variables greeting1 and greeting2 respectively.
Python
Hint
Call greet() without arguments and greet("Alice") with the argument, then save the results.
4
Print the greetings
Print the variables greeting1 and greeting2 to display the greeting messages.
Python
Hint
Use print(greeting1) and print(greeting2) to show the greetings.
Practice
(1/5)
1. What is the main purpose of default arguments in Python functions?
easy
A. To create variables inside the function
B. To provide preset values for parameters if no argument is given
C. To make functions run faster
D. To force the user to always provide all arguments
Solution
Step 1: Understand default arguments
Default arguments allow a function to have parameters with preset values if the caller does not provide them.
Step 2: Identify the purpose
This makes the function easier to call without needing all arguments every time.
Final Answer:
To provide preset values for parameters if no argument is given -> Option B
Quick Check:
Default arguments = preset values [OK]
Hint: Default arguments fill in missing inputs automatically [OK]
Common Mistakes:
Thinking default arguments speed up code
Believing default arguments force all inputs
Confusing default arguments with variable creation
2. Which of the following function definitions uses default arguments correctly?
easy
A. def greet(name='Friend', age):
B. def greet(name=, age=30):
C. def greet(name, age=30):
D. def greet(name, age=):
Solution
Step 1: Check default argument placement
Parameters with default values must come after parameters without defaults.
Step 2: Analyze each option
def greet(name='Friend', age): places a default before a non-default parameter, which is invalid syntax. Options C and D have syntax errors. def greet(name, age=30): correctly places the default argument after a required parameter.
Final Answer:
def greet(name, age=30): -> Option C
Quick Check:
Defaults after required params = correct syntax [OK]
Hint: Put default parameters after required ones [OK]
Common Mistakes:
Placing default arguments before required ones
Leaving default values empty
Using invalid syntax for defaults
3. What is the output of this code?
def multiply(a, b=2):
return a * b
print(multiply(4))
print(multiply(4, 3))
medium
A. Error
B. 6 and 12
C. 8 and 6
D. 8 and 12
Solution
Step 1: Understand default argument usage
When multiply(4) is called, b uses its default value 2, so 4 * 2 = 8.
Step 2: Evaluate second call
When multiply(4, 3) is called, b is 3, so 4 * 3 = 12.
Final Answer:
8 and 12 -> Option D
Quick Check:
Default used first call, explicit second call = 8 and 12 [OK]
Hint: Default used if argument missing, else explicit value [OK]
Common Mistakes:
Assuming default is ignored when argument is given
Confusing order of arguments
Expecting error when default is used
4. Find the error in this function definition:
def add_numbers(x=5, y):
return x + y
medium
A. Default argument before non-default argument causes SyntaxError
B. Missing return statement
C. Function name is invalid
D. No error, code runs fine
Solution
Step 1: Check parameter order
Parameters with default values must come after parameters without defaults in Python.
Step 2: Identify error
Here, x has a default but y does not, so this causes a SyntaxError.
Final Answer:
Default argument before non-default argument causes SyntaxError -> Option A
Quick Check:
Default before required param = SyntaxError [OK]
Hint: Non-default params must come before default ones [OK]
Common Mistakes:
Ignoring parameter order rules
Thinking missing return causes error here
Assuming function name is invalid
5. You want a function that greets a user with their name and an optional greeting word (default is 'Hello'). Which function definition is correct and prints "Hi, Alice!" when called as greet('Alice', 'Hi') and "Hello, Bob!" when called as greet('Bob')?
hard
A. def greet(name, greeting='Hello'):
print(f"{greeting}, {name}!")
B. def greet(greeting='Hello', name):
print(f"{greeting}, {name}!")
C. def greet(name, greeting):
print(f"{greeting}, {name}!")
D. def greet(name='User', greeting='Hello'):
print(f"{name}, {greeting}!")
Solution
Step 1: Check parameter order and defaults
Parameters with defaults must come after those without. def greet(name, greeting='Hello'):
print(f"{greeting}, {name}!") has name first (no default), greeting second (default 'Hello').
Step 2: Verify behavior
Calling greet('Alice', 'Hi') prints "Hi, Alice!". Calling greet('Bob') uses default greeting "Hello" and prints "Hello, Bob!".
Final Answer:
def greet(name, greeting='Hello'):
print(f"{greeting}, {name}!") -> Option A
Quick Check:
Defaults after required params, works as expected [OK]
Hint: Put required params first, defaults after [OK]