Page 37 - 파이썬으로 배우는 컴퓨팅사고 도서 미리보기
        P. 37
     208  PART 2? 파이썬으로 익히는 STEAM 코딩
     func1()          	 # 전역변수 gv의 값
     func2(2)
     print(gv)
      실행결과
     2
     2
     3
     특히 다음 프로그램의 경우처럼 전역변수와 지역변수가 같은 이름으로 함수 내부에서 존
     재할 때 func1() 함수 내의 변수 gv는 지역변수이며, 변수 gv에 값을 대입하기 이전에 변
     수 gv의 값을 사용하였으므로 “UnboundLocalError: local variable ‘gv’ referenced before
     assignment” 오류가 발생한다. 위의 첫 번째 프로그램에서 func1() 함수 내에서 변수 gv에
     값이 대입되는 문장이 없으므로 변수 gv가 전역변수로 참조되었음에 주의하자. 그리고 다
     음 프로그램에서는 func1() 함수 내의 변수 gv에 값이 대입되는 문장이 1v1 = 1v1 + gv 문
     장에서 변수의 값이 먼저 사용되었음에 주의하자.
     gv = 3           	 # 전역변수 gv 선언
     def func1():
     lv1 = 1          	 # 지역변수 lv1 선언
     lv1 = lv1 + gv 	 # 지역변수 lv1의 값, 지역변수 gv의 값
                      	 # => gv에서 오류 발생
     gv = 1           	 # 지역변수 gv의 값을 1로 변경
     print(lv1)
     def func2(pv):   	 # 매개변수 pv 선언
          lv2 = pv     	 # 지역변수 lv2 선언, 매개변수 pv의 값
          print(lv2)  	 # 지역변수 lv2의 값
     func1()          	 # 전역변수 gv의 값
     func2(2)
     print(gv)





