Bird
Raised Fist0
Pythonprogramming~5 mins

Local scope in Python

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
Introduction

Local scope means a variable is only known inside a small part of the program, like inside a function. This helps keep things organized and avoids confusion.

When you want to use a variable only inside a function without affecting the rest of the program.
When you want to keep temporary values that do not need to be saved after a function finishes.
When you want to avoid accidentally changing variables outside a function.
When writing small helper functions that do their own work independently.
When you want to make your code easier to understand by limiting where variables are used.
Syntax
Python
def function_name():
    local_variable = value
    # use local_variable inside this function
    print(local_variable)

Variables created inside a function are local to that function.

Local variables cannot be used outside the function where they are created.

Examples
This function creates a local variable message and prints it.
Python
def greet():
    message = "Hello!"
    print(message)

greet()
The variable result is local and only exists inside add_numbers.
Python
def add_numbers():
    result = 5 + 3
    print(result)

add_numbers()
Trying to print number outside the function causes an error because it is local.
Python
def show_number():
    number = 10
    print(number)

show_number()
# print(number)  # This would cause an error because number is local
Sample Program

This program shows a variable local_var inside a function. It prints the variable inside the function. Outside the function, the variable does not exist.

Python
def my_function():
    local_var = "I am local"
    print(local_var)

my_function()

# Trying to print local_var here will cause an error
# print(local_var)
OutputSuccess
Important Notes

Local variables are created when the function starts and destroyed when it ends.

If you try to use a local variable outside its function, Python will give an error.

You can have variables with the same name in different functions without conflict because each is local to its own function.

Summary

Local scope means variables exist only inside the function where they are created.

Local variables help keep code organized and avoid mistakes.

Always remember local variables cannot be used outside their function.

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