Bird
Raised Fist0
Pythonprogramming~10 mins

Global scope in Python - Step-by-Step Execution

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
Concept Flow - Global scope
Start Program
Define global variable
Define function
Call function
Inside function: Access global variable
Function ends
Program ends
The program starts by defining a global variable, then a function that uses it. When the function is called, it accesses the global variable from the global scope.
Execution Sample
Python
x = 10

def print_x():
    print(x)

print_x()
This code defines a global variable x and a function that prints x, then calls the function.
Execution Table
StepActionVariable 'x' ValueOutput
1Define global variable x = 1010
2Define function print_x()10
3Call print_x()10
4Inside print_x(), print(x)1010
5Function print_x() ends10
6Program ends10
💡 Program ends after function call and output printed
Variable Tracker
VariableStartAfter Step 1After Step 3Final
xundefined101010
Key Moments - 2 Insights
Why does the function print_x() print the value of x even though x is not defined inside it?
Because x is defined in the global scope before the function is called, the function can access it. See execution_table step 4 where print(x) outputs 10.
What if we try to change x inside the function without declaring it global?
Without declaring x as global inside the function, Python treats it as a new local variable. This can cause errors or unexpected behavior. This example only reads x, so no problem occurs.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what value does print_x() print?
A0
B10
Cundefined
DError
💡 Hint
Check the 'Output' column at step 4 in execution_table.
At which step is the global variable x first defined?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Action' column in execution_table for when x is assigned.
If we added 'x = 5' inside print_x() without 'global' keyword, what would happen?
AThe global x changes to 5
BAn error occurs immediately
CA new local x is created inside print_x()
DThe function prints 10
💡 Hint
Recall that assigning to a variable inside a function creates a local variable unless declared global.
Concept Snapshot
Global scope means variables defined outside functions.
Functions can read global variables directly.
To modify global variables inside functions, use 'global' keyword.
Without 'global', assignments create local variables.
Global variables exist throughout program execution.
Full Transcript
This example shows a global variable x set to 10. A function print_x() prints x. When called, print_x() accesses the global x and prints 10. The variable tracker shows x stays 10 throughout. Key points: functions can read global variables without declaring them. But to change them, you must declare 'global x' inside the function. The quiz checks understanding of when x is defined, what print_x() outputs, and what happens if you assign x inside the function without 'global'.

Practice

(1/5)
1. What does the global keyword do inside a Python function?
easy
A. It deletes a global variable.
B. It creates a new local variable inside the function.
C. It makes the function run faster.
D. It allows the function to modify a variable defined outside the function.

Solution

  1. Step 1: Understand the role of global keyword

    The global keyword tells Python that the variable inside the function refers to the variable defined outside (in global scope).
  2. Step 2: Effect on variable modification

    Without global, assigning a value creates a new local variable. With global, it modifies the existing global variable.
  3. Final Answer:

    It allows the function to modify a variable defined outside the function. -> Option D
  4. Quick Check:

    global keyword modifies outer variable [OK]
Hint: global lets functions change outside variables [OK]
Common Mistakes:
  • Thinking global creates a new local variable
  • Assuming global deletes variables
  • Believing global affects performance
2. Which of the following is the correct way to declare a global variable inside a function?
easy
A. def global x:
B. global = x
C. global x
D. x global

Solution

  1. Step 1: Recall correct syntax for global declaration

    The correct syntax is to write the keyword global followed by the variable name, separated by a space.
  2. Step 2: Check each option

    global x matches the correct syntax. Others are invalid Python syntax.
  3. Final Answer:

    global x -> Option C
  4. Quick Check:

    global keyword followed by variable name [OK]
Hint: Use 'global' then variable name to declare global inside function [OK]
Common Mistakes:
  • Using '=' with global keyword
  • Trying to define global like a function
  • Placing global after variable name
3. What will be the output of this code?
count = 5
def increment():
    global count
    count += 1
increment()
print(count)
medium
A. 6
B. None
C. Error
D. 5

Solution

  1. Step 1: Understand the global variable usage

    The variable count is defined globally with value 5. Inside increment(), global count allows modifying this global variable.
  2. Step 2: Trace the function call and print

    The function adds 1 to count, changing it from 5 to 6. Then print(count) outputs 6.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    global lets function change count to 6 [OK]
Hint: global lets function update outside variable [OK]
Common Mistakes:
  • Expecting original value 5 to print
  • Thinking global causes error here
  • Assuming function returns None
4. Find the error in this code:
total = 10
def add():
    total += 5
add()
print(total)
medium
A. Missing global declaration inside add()
B. Syntax error in function definition
C. total is not defined globally
D. print statement is incorrect

Solution

  1. Step 1: Identify variable scope issue

    Inside add(), total += 5 tries to modify total. Without global total, Python treats total as local but it's used before assignment, causing an error.
  2. Step 2: Fix by adding global declaration

    Adding global total inside add() tells Python to use the global total variable, fixing the error.
  3. Final Answer:

    Missing global declaration inside add() -> Option A
  4. Quick Check:

    Modify global variable needs global keyword [OK]
Hint: Add global keyword to modify global variable inside function [OK]
Common Mistakes:
  • Ignoring need for global keyword
  • Thinking total is local automatically
  • Assuming no error occurs
5. You want to count how many times a function is called using a global variable. Which code correctly updates the global counter?
hard
A. calls = 0 def func(): calls += 1 func() print(calls)
B. calls = 0 def func(): global calls calls += 1 func() print(calls)
C. calls = 0 def func(): calls = calls + 1 func() print(calls)
D. calls = 0 def func(): global calls calls = calls func() print(calls)

Solution

  1. Step 1: Understand global variable modification

    To update a global variable inside a function, you must declare it with global inside the function.
  2. Step 2: Analyze each option

    calls = 0 def func(): calls += 1 func() print(calls) tries to increment without global, causing error. calls = 0 def func(): global calls calls += 1 func() print(calls) correctly uses global calls and increments. calls = 0 def func(): calls = calls + 1 func() print(calls) tries to read and assign without global, causing UnboundLocalError. calls = 0 def func(): global calls calls = calls func() print(calls) declares global but does not increment.
  3. Final Answer:

    calls = 0 def func(): global calls calls += 1 func() print(calls) -> Option B
  4. Quick Check:

    global keyword needed to update global variable [OK]
Hint: Use global keyword to update global counter inside function [OK]
Common Mistakes:
  • Forgetting global keyword causes UnboundLocalError
  • Assigning without global causes UnboundLocalError when reading variable
  • Declaring global but not updating variable