Bird
Raised Fist0
Pythonprogramming~5 mins

Local scope 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: Local scope
O(n)
Understanding Time Complexity

When we talk about local scope in Python, we want to see how fast the program runs when it uses variables inside functions.

We ask: How does the time to run change as the function does more work?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

def greet(names):
    for name in names:
        message = f"Hello, {name}!"
        print(message)

names_list = ["Alice", "Bob", "Charlie"]
greet(names_list)

This code says hello to each name in a list by creating a message inside the function and printing it.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-loop that goes through each name in the list.
  • How many times: Once for each name in the input list.
How Execution Grows With Input

As the list of names gets bigger, the program says hello more times, so it takes more steps.

Input Size (n)Approx. Operations
10About 10 greetings and prints
100About 100 greetings and prints
1000About 1000 greetings and prints

Pattern observation: The work grows evenly as the list grows; double the names, double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows directly with the number of names we greet.

Common Mistake

[X] Wrong: "Because the message is created inside the function, it makes the code slower in a big way."

[OK] Correct: Creating a message inside the loop is quick and happens once per name, so it doesn't add extra loops or big delays.

Interview Connect

Understanding how local variables inside functions affect speed helps you explain your code clearly and shows you know how programs grow with input size.

Self-Check

"What if we added another loop inside the function to say hello twice to each name? How would the time complexity change?"

Practice

(1/5)
1. What does local scope mean in Python?
easy
A. Variables can be used anywhere in the program
B. Variables exist only inside the function where they are created
C. Variables are shared between all functions
D. Variables are stored permanently on the disk

Solution

  1. Step 1: Understand the meaning of local scope

    Local scope means a variable is created inside a function and only exists there.
  2. Step 2: Compare options with this meaning

    Only Variables exist only inside the function where they are created correctly states that variables exist only inside their function.
  3. Final Answer:

    Variables exist only inside the function where they are created -> Option B
  4. Quick Check:

    Local scope = variables inside function only [OK]
Hint: Local variables live only inside their function [OK]
Common Mistakes:
  • Thinking local variables can be used outside the function
  • Confusing local scope with global scope
  • Believing variables are shared across functions
2. Which of the following is the correct way to define a local variable inside a function?
easy
A. def func(): x = 5
B. x = 5 def func(): print(x)
C. def func(): global x x = 5
D. def func(): return x

Solution

  1. Step 1: Identify local variable definition

    A local variable is created by assigning a value inside a function without global keyword.
  2. Step 2: Check each option

    def func(): x = 5 assigns x inside the function, making it local. Others either use global or no assignment inside function.
  3. Final Answer:

    def func():\n x = 5 -> Option A
  4. Quick Check:

    Assign inside function = local variable [OK]
Hint: Assign variable inside function without global for local [OK]
Common Mistakes:
  • Using global keyword when not needed
  • Assigning variable outside function expecting it local
  • Trying to return variable not defined inside function
3. What will be the output of this code?
def greet():
    message = "Hello"
    print(message)

greet()
print(message)
medium
A. Hello NameError
B. Hello Hello
C. NameError Hello
D. NameError NameError

Solution

  1. Step 1: Understand variable scope in the code

    Variable 'message' is defined inside greet(), so it is local to that function.
  2. Step 2: Trace the print statements

    Calling greet() prints 'Hello'. Then print(message) outside function causes NameError because 'message' is not defined globally.
  3. Final Answer:

    Hello\nNameError -> Option A
  4. Quick Check:

    Local variable outside function causes NameError [OK]
Hint: Local variables can't be printed outside their function [OK]
Common Mistakes:
  • Assuming local variable is accessible globally
  • Expecting both prints to show 'Hello'
  • Ignoring NameError on second print
4. Find the error in this code and fix it:
def add():
    result = a + b
    print(result)

add()
Assuming a = 2 and b = 3 are defined outside the function.
medium
A. Add 'global a, b' inside add()
B. No error, code runs fine
C. Define a and b inside add()
D. Pass a and b as parameters to add()

Solution

  1. Step 1: Identify variable scope issue

    a and b are defined outside but used inside add() without global or parameters, causing NameError.
  2. Step 2: Fix by passing variables as parameters

    Passing a and b as parameters to add() allows access without global keyword.
  3. Final Answer:

    Pass a and b as parameters to add() -> Option D
  4. Quick Check:

    Use parameters to access outside variables inside function [OK]
Hint: Pass outside variables as parameters to use inside function [OK]
Common Mistakes:
  • Using global keyword unnecessarily
  • Defining variables inside function losing outside values
  • Ignoring NameError from missing variables
5. How can you modify this code to keep track of how many times count_calls() is called, using local scope only?
def count_calls():
    calls = 0
    calls += 1
    print(f"Called {calls} times")

count_calls()
count_calls()
hard
A. Declare calls as global variable
B. Define calls outside function and modify inside
C. Use a default argument to store calls count
D. Use a class to store calls count

Solution

  1. Step 1: Understand why calls resets

    Variable calls is local and resets to 0 each call, so count never increases.
  2. Step 2: Use default argument to keep state locally

    Using a default argument like calls=[0] keeps count inside function without global or external variables.
  3. Final Answer:

    Use a default argument to store calls count -> Option C
  4. Quick Check:

    Default argument keeps local state across calls [OK]
Hint: Use default mutable argument to keep count inside function [OK]
Common Mistakes:
  • Using global variable instead of local trick
  • Defining calls outside function losing local scope
  • Not realizing local variables reset each call