Bird
Raised Fist0
Pythonprogramming~20 mins

Methods with parameters in Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

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
Challenge - 5 Problems
🎖️
Master of Methods with Parameters
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of method with default and positional parameters
What is the output of this Python code?
Python
class Calculator:
    def multiply(self, x, y=2):
        return x * y

calc = Calculator()
print(calc.multiply(3))
A6
B3
CTypeError
DNone
Attempts:
2 left
💡 Hint
Remember that y has a default value of 2 if not provided.
Predict Output
intermediate
2:00remaining
Output when method parameters are passed by keyword
What will this code print?
Python
class Greeter:
    def greet(self, name, greeting='Hello'):
        print(f"{greeting}, {name}!")

g = Greeter()
g.greet(greeting='Hi', name='Alice')
ATypeError
BHello, Alice!
CHi, Alice!
DHi, greeting!
Attempts:
2 left
💡 Hint
Check how keyword arguments match parameters.
Predict Output
advanced
2:00remaining
Output of method with mutable default parameter
What is the output of this code?
Python
class Collector:
    def __init__(self):
        self.items = []
    def add(self, item, collection=[]):
        collection.append(item)
        return collection

c = Collector()
print(c.add('apple'))
print(c.add('banana'))
A['apple']\n['banana']
B[]\n[]
CTypeError
D['apple']\n['apple', 'banana']
Attempts:
2 left
💡 Hint
Default mutable parameters keep their state between calls.
Predict Output
advanced
2:00remaining
Output of method using *args and **kwargs
What does this code print?
Python
class Printer:
    def show(self, *args, **kwargs):
        print(args)
        print(kwargs)

p = Printer()
p.show(1, 2, a=3, b=4)
A(1, 2)\n{'a': 3, 'b': 4}
B[1, 2]\n{'a': 3, 'b': 4}
CTypeError
D(1, 2)\n[3, 4]
Attempts:
2 left
💡 Hint
*args collects positional arguments as a tuple, **kwargs collects keyword arguments as a dict.
🧠 Conceptual
expert
3:00remaining
Understanding parameter passing and object mutation
Consider this code. What is the output after calling modify_list?
Python
def modify_list(lst):
    lst.append(4)
    lst = [1, 2, 3]
    return lst

my_list = [0]
result = modify_list(my_list)
print(my_list)
print(result)
A[0]\n[1, 2, 3, 4]
B[0, 4]\n[1, 2, 3]
C[0, 4]\n[0, 4]
D[1, 2, 3]\n[1, 2, 3]
Attempts:
2 left
💡 Hint
Think about how lists are passed by reference and reassignment inside the function.

Practice

(1/5)
1. What is the purpose of parameters in a Python method?
easy
A. To accept inputs that the method can use
B. To store data permanently
C. To print output automatically
D. To create new variables outside the method

Solution

  1. Step 1: Understand what parameters do

    Parameters allow a method to receive inputs when it is called.
  2. Step 2: Identify the correct purpose

    Parameters are not for storing data permanently or printing output; they are for input.
  3. Final Answer:

    To accept inputs that the method can use -> Option A
  4. Quick Check:

    Parameters = inputs [OK]
Hint: Parameters let methods take inputs to work with [OK]
Common Mistakes:
  • Thinking parameters store data permanently
  • Confusing parameters with output
  • Believing parameters create variables outside method
2. Which of the following is the correct way to define a method with two parameters a and b in Python?
easy
A. def my_method{a, b}:
B. def my_method[a, b]:
C. def my_method(a, b):
D. def my_method a, b:

Solution

  1. Step 1: Recall Python method syntax

    Methods use parentheses () to list parameters separated by commas.
  2. Step 2: Identify correct syntax

    Only def my_method(a, b): uses parentheses and commas correctly.
  3. Final Answer:

    def my_method(a, b): -> Option C
  4. Quick Check:

    Method parameters use ( ) and commas [OK]
Hint: Use parentheses and commas to list parameters [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Using curly braces instead of parentheses
  • Omitting parentheses around parameters
3. What will be the output of the following code?
def greet(name):
    return f"Hello, {name}!"

print(greet("Alice"))
medium
A. Hello, name!
B. Error: name not defined
C. greet(Alice)
D. Hello, Alice!

Solution

  1. Step 1: Understand the method call

    The method greet is called with argument "Alice" passed to parameter name.
  2. Step 2: Evaluate the return statement

    The method returns the string "Hello, Alice!" using f-string formatting.
  3. Final Answer:

    Hello, Alice! -> Option D
  4. Quick Check:

    Method returns greeting with input name [OK]
Hint: Arguments replace parameters when method runs [OK]
Common Mistakes:
  • Printing the parameter name instead of its value
  • Confusing method name with output
  • Expecting an error due to missing quotes
4. Find the error in this method definition:
def add_numbers(x, y)
    return x + y
medium
A. Parameters should be inside square brackets
B. Missing colon after parameter list
C. Return statement should be outside the method
D. Parameters must be strings

Solution

  1. Step 1: Check method syntax

    Python method definitions require a colon ':' after the parameter list.
  2. Step 2: Identify missing colon

    The code misses the colon after (x, y), causing syntax error.
  3. Final Answer:

    Missing colon after parameter list -> Option B
  4. Quick Check:

    Method header ends with ':' [OK]
Hint: Always put ':' after method parameters [OK]
Common Mistakes:
  • Forgetting colon after parameters
  • Using wrong brackets for parameters
  • Misplacing return statement
5. You want to create a method calculate_area that takes two parameters width and height and returns their product. Which code correctly implements this?
hard
A. def calculate_area(width, height): return width * height
B. def calculate_area(width, height): return width + height
C. def calculate_area(width, height): print(width * height)
D. def calculate_area(width, height): return width / height

Solution

  1. Step 1: Understand the method goal

    The method should return the product (multiplication) of width and height.
  2. Step 2: Check each option's return value

    def calculate_area(width, height): return width * height returns width * height, which is correct. Others return sum, print output, or division.
  3. Final Answer:

    def calculate_area(width, height):\n return width * height -> Option A
  4. Quick Check:

    Area = width x height [OK]
Hint: Use * operator to multiply parameters for area [OK]
Common Mistakes:
  • Using + instead of * for multiplication
  • Printing instead of returning value
  • Dividing instead of multiplying