지역변수는 함수 안에서 사용되는 변수이고 함수가 작동할 때 생성되며 함수가 끝나는 동시에 소멸된다.
반면 전역변수는 함수의 생성, 소멸과는 상관없이 존재하는 변수이다.
전역변수를 함수 내에서 사용할 수는 있지만 그 값을 변경하려면 'global'이라는 명령어를 사용해줘야 한다.
>>> i=1
>>> def example():
... print i
...
>>> example()
1
이와 같은 경우 전역변수를 함수 내에서 호출하여 출력할 수 있지만, 중첩적으로 변수를 가공하는 경우 에러가 난다.
>>> x=1
>>> def example():
... x=x+1
... print x
...
>>> example()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in example
UnboundLocalError: local variable 'x' referenced before assignment
이때는 'global'을 사용해주면 에러가 없어진다.
>>> def example():
... global x
... x=x+1
... print x
...
>>> example()
2