Bird
Raised Fist0
Pythonprogramming~5 mins

Global keyword 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

The global keyword lets you change a variable outside a function from inside it. Without it, you can only read the outside variable, not change it.

You want to update a setting or counter that is used in many parts of your program.
You have a variable defined outside functions and want to change its value inside a function.
You want to keep track of a total or score that changes as your program runs.
You want to share data between different functions without passing it as a parameter.
Syntax
Python
global variable_name

Use global inside a function before changing the variable.

If you don't use global, Python treats the variable as new inside the function.

Examples
This changes the global variable x from 5 to 10 inside the function.
Python
x = 5

def change():
    global x
    x = 10

change()
print(x)
Each time add_one() runs, it increases the global count by 1.
Python
count = 0

def add_one():
    global count
    count += 1

add_one()
add_one()
print(count)
Without global, the global value stays 3 because the function only changes a local variable.
Python
value = 3

def try_change():
    value = 7  # This creates a new local variable

try_change()
print(value)
Sample Program

This program shows how the global keyword lets the function increase_score change the global score variable.

Python
score = 0

def increase_score():
    global score
    score += 5

print(f'Score before: {score}')
increase_score()
print(f'Score after: {score}')
OutputSuccess
Important Notes

Use global only when you really need to change a global variable.

Too much use of global can make your code harder to understand.

For many cases, passing variables as function parameters is clearer.

Summary

The global keyword lets you change variables outside functions.

Without global, variables inside functions are local by default.

Use global carefully to keep your code easy to read.

Practice

(1/5)
1.

What does the global keyword do in Python?

easy
A. It creates a new local variable inside a function.
B. It allows a function to modify a variable defined outside it.
C. It deletes a variable from the global scope.
D. It imports a module globally.

Solution

  1. Step 1: Understand variable scopes

    Variables defined outside functions are global, inside functions are local by default.
  2. Step 2: Role of global keyword

    The global keyword tells Python to use the global variable inside the function, allowing modification.
  3. Final Answer:

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

    global lets function change outside variable [OK]
Hint: Global lets functions change outside variables directly [OK]
Common Mistakes:
  • Thinking global creates new local variables
  • Confusing global with import statements
  • Assuming global deletes variables
2.

Which of the following is the correct way to modify a global variable count inside a function?

count = 0
def increment():
    ?
    count += 1
easy
A. def count
B. local count
C. global count
D. nonlocal count

Solution

  1. Step 1: Identify the need to modify global variable

    The function wants to increase the global variable count.
  2. Step 2: Use correct keyword to access global variable

    Using global count inside the function tells Python to use the global count, not create a local one.
  3. Final Answer:

    global count -> Option C
  4. Quick Check:

    Use 'global' to modify global variables inside functions [OK]
Hint: Use 'global' before variable to modify it inside function [OK]
Common Mistakes:
  • Using 'local' which is not a Python keyword
  • Using 'nonlocal' which applies to enclosing functions, not globals
  • Trying to define variable with 'def'
3.

What is the output of this code?

value = 5
def change():
    global value
    value = 10
change()
print(value)
medium
A. 5
B. Error
C. None
D. 10

Solution

  1. Step 1: Analyze the function change()

    The function declares value as global and sets it to 10.
  2. Step 2: Effect of calling change()

    Calling change() updates the global value from 5 to 10.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    global lets function update outside variable [OK]
Hint: global changes outside variable, so print shows updated value [OK]
Common Mistakes:
  • Thinking print shows original value 5
  • Expecting an error without global keyword
  • Confusing local and global scopes
4.

Find the error in this code and choose the fix:

counter = 0
def add():
    counter += 1
add()
print(counter)
medium
A. Add global counter inside add() before incrementing.
B. Change counter to a local variable inside add().
C. Remove the increment line counter += 1.
D. Define counter inside add() without global.

Solution

  1. Step 1: Identify the error cause

    Trying to increment counter inside add() without declaring it global causes UnboundLocalError.
  2. Step 2: Fix by declaring global variable

    Adding global counter inside add() tells Python to use the global counter variable.
  3. Final Answer:

    Add global counter inside add() before incrementing. -> Option A
  4. Quick Check:

    Declare global to modify outside variable inside function [OK]
Hint: Declare global before modifying global variable inside function [OK]
Common Mistakes:
  • Ignoring the need for global declaration
  • Trying to create local variable with same name
  • Removing increment instead of fixing scope
5.

You want to count how many times a function is called using a global variable calls. Which code correctly updates calls each time track() runs?

calls = 0
def track():
    ?
    calls += 1

track()
track()
print(calls)
hard
A. global calls
B. nonlocal calls
C. local calls
D. calls = 0

Solution

  1. Step 1: Understand the goal

    We want to update the global variable calls inside the function track().
  2. Step 2: Use the correct keyword

    Using global calls inside track() allows incrementing the global calls variable.
  3. Step 3: Confirm output

    Calling track() twice increments calls from 0 to 2, so print(calls) outputs 2.
  4. Final Answer:

    global calls -> Option A
  5. Quick Check:

    Use global to update global counter inside function [OK]
Hint: Use 'global' to update global counter inside function [OK]
Common Mistakes:
  • Using 'nonlocal' which is for nested functions
  • Trying to assign local variable without global
  • Resetting calls inside function