Bird
Raised Fist0
Pythonprogramming~10 mins

Why scope matters in Python - Test Your Understanding

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the value of the variable inside the function.

Python
def greet():
    message = 'Hello!'
    print([1])
greet()
Drag options to blanks, or click blank then click option'
Aprint
Bgreet
Cmessage
DHello
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the function name instead of the variable.
Trying to print a string without quotes.
Using a variable not defined in the function.
2fill in blank
medium

Complete the code to access the global variable inside the function.

Python
count = 5
def show_count():
    print([1])
show_count()
Drag options to blanks, or click blank then click option'
Acount
B5
Cshow_count
Dprint
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the function name instead of the variable.
Trying to print the number directly without the variable.
Using a variable not defined globally.
3fill in blank
hard

Fix the error by completing the code to modify the global variable inside the function.

Python
counter = 10
def increase():
    global [1]
    counter += 1
increase()
print(counter)
Drag options to blanks, or click blank then click option'
Acounter
Bincrease
Ccount
Dglobal
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using a different variable name in the global statement.
Forgetting the global keyword.
Trying to modify the variable without declaring it global.
4fill in blank
hard

Fill both blanks to create a local variable and print it inside the function.

Python
def show():
    [1] = 'Local'
    print([2])
show()
Drag options to blanks, or click blank then click option'
Atext
Bmessage
Dprint
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using different variable names for assignment and print.
Trying to print a function name.
Using a keyword like print as a variable.
5fill in blank
hard

Fill all three blanks to create a global variable, modify it inside a function, and print the updated value.

Python
value = 3
def update():
    global [1]
    [2] += 7
update()
print([3])
Drag options to blanks, or click blank then click option'
Avalue
Dupdate
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using different variable names in different places.
Forgetting the global keyword.
Trying to print the function name instead of the variable.

Practice

(1/5)
1. What does the term scope mean in Python programming?
easy
A. The area where a variable can be accessed or used
B. The size of a variable in memory
C. The speed at which a program runs
D. The type of a variable

Solution

  1. Step 1: Understand variable accessibility

    Scope defines where a variable can be accessed in the code.
  2. Step 2: Differentiate scope from other concepts

    Scope is not about size, speed, or type but about accessibility.
  3. Final Answer:

    The area where a variable can be accessed or used -> Option A
  4. Quick Check:

    Scope = variable accessibility [OK]
Hint: Scope means where variables can be used in code [OK]
Common Mistakes:
  • Confusing scope with variable size
  • Thinking scope affects program speed
  • Mixing scope with variable type
2. Which of the following is the correct way to declare a global variable inside a function?
easy
A. global = x
B. def global x
C. global x
D. var global x

Solution

  1. Step 1: Recall Python syntax for global variables

    To modify a global variable inside a function, use the keyword global followed by the variable name.
  2. Step 2: Check each option's syntax

    Only global x is valid Python syntax; others are incorrect.
  3. Final Answer:

    global x -> Option C
  4. Quick Check:

    Use 'global' keyword correctly [OK]
Hint: Use 'global' keyword before variable name inside functions [OK]
Common Mistakes:
  • Using 'def' or 'var' with global
  • Assigning 'global = x' which is invalid
  • Forgetting to declare global before use
3. What will be the output of this code?
count = 5

def increment():
    count = 10
    print(count)

increment()
print(count)
medium
A. 10\n5
B. 10\n10
C. 5\n5
D. 5\n10

Solution

  1. Step 1: Analyze variable scope inside the function

    Inside increment(), count = 10 creates a local variable named count that shadows the global one.
  2. Step 2: Check print statements

    The first print inside the function prints local count (10). The second print outside prints global count (5).
  3. Final Answer:

    10 5 -> Option A
  4. Quick Check:

    Local shadows global inside function [OK]
Hint: Local variables inside functions don't change globals unless declared [OK]
Common Mistakes:
  • Assuming global variable changes inside function without 'global'
  • Confusing which 'count' is printed
  • Expecting both prints to show 10
4. Find the error in this code related to variable scope:
def add_one():
    x += 1
    print(x)

x = 5
add_one()
medium
A. No error, output will be 6
B. SyntaxError due to missing colon
C. NameError because x is not defined anywhere
D. UnboundLocalError because x is used before assignment inside function

Solution

  1. Step 1: Understand variable modification inside function

    Inside add_one(), x += 1 tries to modify x locally, but x is not declared local or global.
  2. Step 2: Identify error type

    Python raises UnboundLocalError because it thinks x is local but it's used before assignment.
  3. Final Answer:

    UnboundLocalError because x is used before assignment inside function -> Option D
  4. Quick Check:

    Modifying global without 'global' causes UnboundLocalError [OK]
Hint: Declare 'global x' to modify global variable inside function [OK]
Common Mistakes:
  • Thinking it's a NameError
  • Expecting code to print 6 without error
  • Ignoring need for 'global' keyword
5. Given this code, what will be the output?
def outer():
    x = 'local'
    def inner():
        nonlocal x
        x = 'nonlocal'
        print('inner:', x)
    inner()
    print('outer:', x)

outer()
hard
A. inner: local\nouter: local
B. inner: nonlocal\nouter: nonlocal
C. inner: nonlocal\nouter: local
D. SyntaxError due to nonlocal usage

Solution

  1. Step 1: Understand 'nonlocal' keyword effect

    The nonlocal keyword allows inner() to modify x defined in outer(), not create a new local variable.
  2. Step 2: Trace print outputs

    inner() prints inner: nonlocal after changing x. Then outer() prints outer: nonlocal showing the updated value.
  3. Final Answer:

    inner: nonlocal outer: nonlocal -> Option B
  4. Quick Check:

    'nonlocal' changes outer function variable [OK]
Hint: Use 'nonlocal' to modify outer function variables inside nested functions [OK]
Common Mistakes:
  • Thinking 'nonlocal' causes syntax error
  • Assuming inner creates a new local variable
  • Expecting outer's x to remain 'local'