Bird
Raised Fist0
Pythonprogramming~20 mins

Positional arguments 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
๐ŸŽ–๏ธ
Positional Arguments Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of function with positional arguments
What is the output of this Python code?
Python
def greet(name, age):
    return f"Hello {name}, you are {age} years old."

result = greet("Alice", 30)
print(result)
AHello Alice, you are 30 years old.
BHello 30, you are Alice years old.
CTypeError: greet() missing 1 required positional argument
DHello name, you are age years old.
Attempts:
2 left
๐Ÿ’ก Hint
Remember the order of positional arguments matters.
โ“ Predict Output
intermediate
2:00remaining
Function call with swapped positional arguments
What will this code print?
Python
def calculate(x, y):
    return x - y

print(calculate(5, 10))
A5
BTypeError
C-5
D15
Attempts:
2 left
๐Ÿ’ก Hint
Check the order of subtraction with given arguments.
โ“ Predict Output
advanced
2:00remaining
Positional arguments with default values
What is the output of this code?
Python
def info(name, age=25):
    return f"Name: {name}, Age: {age}"

print(info("Bob"))
AName: Bob, Age:
BName: Bob, Age: 25
CTypeError: missing required positional argument 'age'
DName: , Age: 25
Attempts:
2 left
๐Ÿ’ก Hint
Default values are used when arguments are not provided.
โ“ Predict Output
advanced
2:00remaining
Error from missing positional argument
What error does this code raise?
Python
def multiply(a, b):
    return a * b

result = multiply(4)
ATypeError: multiply() missing 1 required positional argument: 'b'
BTypeError: multiply() takes 1 positional argument but 2 were given
CNameError: name 'b' is not defined
D4
Attempts:
2 left
๐Ÿ’ก Hint
Check how many arguments the function expects and how many are given.
๐Ÿง  Conceptual
expert
2:00remaining
Order of positional arguments in function call
Given the function definition def func(a, b, c):, which call will assign a=1, b=2, and c=3 correctly?
Afunc(3, 2, 1)
Bfunc(b=2, a=1, c=3)
Cfunc(1, c=3, 2)
Dfunc(1, 2, 3)
Attempts:
2 left
๐Ÿ’ก Hint
Positional arguments must be in the order of parameters.

Practice

(1/5)
1.

What are positional arguments in Python functions?

easy
A. Arguments passed in the exact order the function expects
B. Arguments passed with their names explicitly stated
C. Arguments that have default values
D. Arguments passed as a list or tuple

Solution

  1. Step 1: Understand argument passing

    Positional arguments are passed to a function in the order the function defines its parameters.
  2. Step 2: Differentiate from other argument types

    Unlike keyword arguments, positional arguments do not specify parameter names explicitly.
  3. Final Answer:

    Arguments passed in the exact order the function expects -> Option A
  4. Quick Check:

    Positional arguments = ordered values [OK]
Hint: Remember: order matters in positional arguments [OK]
Common Mistakes:
  • Confusing positional with keyword arguments
  • Thinking default values are positional arguments
  • Assuming order doesn't matter
2.

Which of the following function calls uses positional arguments correctly?

def greet(name, age):
    return f"Hello {name}, you are {age} years old."
easy
A. greet(age=30, name='Alice')
B. greet(30, name='Alice')
C. greet('Alice', name=30)
D. greet('Alice', 30)

Solution

  1. Step 1: Identify positional argument usage

    Positional arguments are passed without naming, in the order parameters are defined.
  2. Step 2: Check each option

    greet('Alice', 30) passes 'Alice' then 30 matching (name, age) order correctly.
  3. Final Answer:

    greet('Alice', 30) -> Option D
  4. Quick Check:

    Positional call = values in order [OK]
Hint: Positional means no names, just order [OK]
Common Mistakes:
  • Mixing keyword and positional arguments incorrectly
  • Passing arguments in wrong order
  • Using parameter names with positional arguments
3.

What is the output of this code?

def multiply(a, b):
    return a * b

result = multiply(3, 4)
print(result)
medium
A. 7
B. 34
C. 12
D. Error

Solution

  1. Step 1: Understand function call with positional arguments

    Arguments 3 and 4 are passed as a and b respectively.
  2. Step 2: Calculate the return value

    3 multiplied by 4 equals 12, so the function returns 12.
  3. Final Answer:

    12 -> Option C
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Multiply arguments in order given [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating numbers as strings
  • Confusing argument order
4.

Find the error in this function call:

def divide(x, y):
    return x / y

print(divide(10))
medium
A. Missing one positional argument in the call
B. Division by zero error
C. Syntax error in function definition
D. No error, prints 10

Solution

  1. Step 1: Check function parameters and call

    Function divide expects two positional arguments: x and y.
  2. Step 2: Analyze the call with one argument

    Calling divide(10) provides only one argument, missing the second required positional argument y.
  3. Final Answer:

    Missing one positional argument in the call -> Option A
  4. Quick Check:

    Function needs 2 args, got 1 [OK]
Hint: Count arguments to match parameters [OK]
Common Mistakes:
  • Assuming missing arguments default to zero
  • Thinking one argument is enough
  • Ignoring error messages
5.

Given this function:

def create_greeting(greeting, name, punctuation):
    return f"{greeting}, {name}{punctuation}"

Which call correctly uses positional arguments to produce Hello, Bob!?

hard
A. create_greeting('Bob', 'Hello', '!')
B. create_greeting('Hello', 'Bob', '!')
C. create_greeting(name='Hello', punctuation='!', 'Bob')
D. create_greeting(name='Bob', greeting='Hello', punctuation='!')

Solution

  1. Step 1: Identify parameter order

    The function parameters are greeting, name, punctuation in that order.
  2. Step 2: Match arguments to parameters positionally

    create_greeting('Hello', 'Bob', '!') passes 'Hello' to greeting, 'Bob' to name, and '!' to punctuation, producing the desired output.
  3. Final Answer:

    create_greeting('Hello', 'Bob', '!') -> Option B
  4. Quick Check:

    Order matches parameters for correct output [OK]
Hint: Match argument order to parameter order exactly [OK]
Common Mistakes:
  • Swapping argument order
  • Mixing positional and keyword incorrectly
  • Assuming keyword arguments are positional