Variable Scope
Last updated on 2023-05-02 | Edit this page
Estimated time: 20 minutes
Overview
Questions
- How do function calls actually work?
 - How can I determine where errors occurred?
 
Objectives
- Identify local and global variables.
 - Identify parameters as local variables.
 - Read a traceback and determine the file, function, and line number on which the error occurred, the type of error, and the error message.
 
The scope of a variable is the part of a program that can ‘see’ that variable.
- There are only so many sensible names for variables.
 - People using functions shouldn’t have to worry about what variable names the author of the function used.
 - People writing functions shouldn’t have to worry about what variable names the function’s caller uses.
 - The part of a program in which a variable is visible is called its scope.
 
- 
pressureis a global variable.- Defined outside any particular function.
 - Visible everywhere.
 
 - 
tandtemperatureare local variables inadjust.- Defined in the function.
 - Not visible in the main program.
 - Remember: a function parameter is a variable that is automatically assigned a value when the function is called.
 
 
OUTPUT
adjusted: 0.01238691049085659
ERROR
Traceback (most recent call last):
  File "/Users/swcarpentry/foo.py", line 8, in <module>
    print('temperature after call:', temperature)
NameError: name 'temperature' is not defined
Reading Error Messages
Read the traceback below, and identify the following:
- How many levels does the traceback have?
 - What is the file name where the error occurred?
 - What is the function name where the error occurred?
 - On which line number in this function did the error occur?
 - What is the type of error?
 - What is the error message?
 
ERROR
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-2-e4c4cbafeeb5> in <module>()
      1 import errors_02
----> 2 errors_02.print_friday_message()
/Users/ghopper/thesis/code/errors_02.py in print_friday_message()
     13
     14 def print_friday_message():
---> 15     print_message("Friday")
/Users/ghopper/thesis/code/errors_02.py in print_message(day)
      9         "sunday": "Aw, the weekend is almost over."
     10     }
---> 11     print(messages[day])
     12
     13
KeyError: 'Friday'
- Three levels.
 errors_02.pyprint_message- Line 11
 - 
KeyError. These errors occur when we are trying to look up a key that does not exist (usually in a data structure such as a dictionary). We can find more information about theKeyErrorand other built-in exceptions in the Python docs. KeyError: 'Friday'
Key Points
- The scope of a variable is the part of a program that can ‘see’ that variable.