I've started teaching myself python, and have noticed something strange to do with global variables and scope. When I run this:
x = 2 
y = 3 
z=17 
def add_nums():
    y = 6 
    return z+y
The result of 23 is printed... However, when I expand the return to be:
x = 2 
y = 3 
z=17 
def add_nums(): 
    y = 6 
    z = z + y 
    return z
I get the following error on line 6:
Local name referenced but not bound to a value.
A local name was used before it was created. You need to define the     
method or variable before you try to use it.
I'm confused as why I am getting an error here, as z is global an accessible.
 
     
     
     
    