# 지역변수와 전역변수의 이해
1. 유효범위
자신이 활동할 수 있는 범위
함수1 - 지역변수1, 지역변수2, 동일변수1
함수2 - 지역변수3, 지역변수4
전역변수1
동일변수1
2. 지역변수 : 한정된 지역(local)에서만 사용되는 변수
생존 범위 : 위에 예시로 지역변수1, 지역변수2는
함수1에서 사용되고 함수2에서는 사용되지 못한다.
3. 전역변수 : 프로그램 전체(global)에서 사용되는 변수
생존 범위 : 위에 예시로 전역변수1은 함수1과 함수2에서
사용할 수 있다.
4. 지역변수와 전역변수의 이름이 같은 경우
1) 지역변수가 우선됨
2) 위 유효범위내용 함수1은 전역변수와 지역변수로
동일변수1가 있을 때, 지역변수에 있는 동일변수1을 호출하여
사용한다.
3) 함수2는 해당 함수내에 동일변수1이 없기에 전역변수에 있는
동일변수1로 호출하여 사용한다.
gloVar01=10
commVar02 = 20
def fun01():
locVar03=30
locVar04=40
print("지역변수03호출:",locVar03)
print("전역변수01호출:",gloVar01)
# print("외부함수 지역변수호출:",locVar05)
print("공통변수02호출:",commVar02)
def fun02():
locVar05=50
commVar02=60
print("지역변수05호출",locVar05)
print("공통변수02호출",commVar02)
fun01()
fun02()
print("전역변수 호출:",gloVar01)
# ex) 회사이름과 공통부서명을 전역변수로 선언하고,
# part01(), part02()에서 각각의 부서명을 선언하여 회사이름과 부서명을 호출하되
# part02()에서는 공통부서명과 동일한 변수로 부서명을 다르게 할당했을 때,
# 처리되는 데이터를 출력하세요..
compName = "행복한 사람들(회사명)"
commPart = "아이티사업부"
def part01():
part01="인사부"
print("회사명:",compName)
print("부서명:",part01)
print("공통부서명:",commPart)
def part02():
part02 = "재무팀"
commPart = "기획재정실"
print("회사명:",compName)
print("부서명:",part02)
print("공통부서명:",commPart)
part01()
part02()
# global 예약어
1. 함수 안에서 사용되는 변수로 지역변수 대신에 무조건 전역변수로
사용하고 싶은 경우에 사용하는 예약어
2. global 예약어와 함께 나오는 변수명은 무조건 전역변수이다.
def func01():
global num01
num01 = 10
print("함수01의 num01:",num01)
def func02():
print("함수02의 num01:",num01)
# num01 = 20
func01()
num01 = 20
func02()
# ex) buy01(), buy02()를 통해 price01, price02를 통해서 물건값으로 구매했을
# 때, 해당 물건을 구매가격을 출력하고 buy01()에서 global 키워드를 이용해서
# 전역변수를 선언하고, 총비용을 누적해서 buy02()에서 출력하세요.
def buy01():
price01 = 1000
print("물건1의 구매가격:",price01)
global sum
sum = price01
def buy02():
price02 = 2000
print("물건2의 구매가격:",price02)
print("총재 총비용:", sum + price02)
buy01()
buy02()