Bird
Raised Fist0
Pythonprogramming~5 mins

Positional arguments in Python - Time & Space Complexity

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
Time Complexity: Positional arguments
O(1)
Understanding Time Complexity

Let's see how the time it takes to run a function changes when we use positional arguments.

We want to know how the number of steps grows as we give more inputs.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

def sum_numbers(a, b, c):
    return a + b + c

result = sum_numbers(1, 2, 3)
print(result)

This code adds three numbers given as positional arguments and prints the result.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding three numbers once.
  • How many times: Exactly one time, no loops or repeats.
How Execution Grows With Input

Since the function always adds exactly three numbers, the work stays the same no matter what.

Input Size (n)Approx. Operations
32 additions
10Still 2 additions
100Still 2 additions

Pattern observation: The number of operations does not grow with input size here.

Final Time Complexity

Time Complexity: O(1)

This means the time to run the function stays the same no matter how many inputs you give, because it only handles a fixed number.

Common Mistake

[X] Wrong: "Adding more positional arguments makes the function slower in a big way."

[OK] Correct: The function only does a fixed number of steps, so adding more arguments to the call doesn't change how many steps the function runs.

Interview Connect

Understanding how fixed inputs affect time helps you explain simple function behavior clearly and confidently.

Self-Check

"What if the function used a loop to add a list of numbers passed as positional arguments? How would the time complexity change?"

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