Bird
Raised Fist0
Pythonprogramming~20 mins

Global keyword in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
๐ŸŽ–๏ธ
Global Scope Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of this code using global keyword?

Look at the code below. What will it print?

Python
x = 5

def change():
    global x
    x = 10

change()
print(x)
A5
BNameError
C10
DUnboundLocalError
Attempts:
2 left
๐Ÿ’ก Hint

Think about what the global keyword does inside a function.

โ“ Predict Output
intermediate
2:00remaining
What error does this code raise?

What error will this code produce?

Python
count = 0

def increment():
    count += 1

increment()
AUnboundLocalError
BNameError
CSyntaxError
DNo error
Attempts:
2 left
๐Ÿ’ก Hint

Look at how count is used inside the function without global.

๐Ÿ”ง Debug
advanced
2:00remaining
Why does this code print 0 instead of 1?

Fix the code so that print(x) outputs 1.

Python
x = 0

def set_x():
    x = 1

set_x()
print(x)
AAdd <code>global x</code> inside <code>set_x()</code> before assignment
BRemove the assignment inside <code>set_x()</code>
CChange <code>x = 1</code> to <code>return 1</code> and assign outside
DDeclare <code>x</code> as a parameter of <code>set_x()</code>
Attempts:
2 left
๐Ÿ’ก Hint

Think about how to modify the global variable inside a function.

โ“ Predict Output
advanced
2:00remaining
What is the output of this nested function code?

What will this code print?

Python
count = 0

def outer():
    def inner():
        global count
        count += 1
    inner()

outer()
print(count)
A0
BUnboundLocalError
CNameError
D1
Attempts:
2 left
๐Ÿ’ก Hint

Notice the use of global inside the inner function.

๐Ÿง  Conceptual
expert
2:00remaining
Which option causes an error due to incorrect global usage?

Which code snippet will raise an error because of wrong use of the global keyword?

A
def f():
    global b
    print(b)

b = 3
f()
B
def f():
    global c
    c += 1

f()
C
def f():
    global a
    a = 5

f()
print(a)
D
def f():
    global d
    d = d + 1

d = 0
f()
Attempts:
2 left
๐Ÿ’ก Hint

Consider if the global variable is initialized before use.

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