The first call uses the default 'Friend', the second call uses the provided 'Alice'.
Explain what default arguments are and how they work in Python functions.
Think about function parameters that have a value ready if you don't give one.
You got /3 concepts.
Describe the problem with using mutable objects as default arguments and how to fix it.
Consider what happens if you change a list used as a default argument.
You got /3 concepts.
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]