지역변수 : 함수 내에서만 쓸 수 있는 함수. 함수를 호출할 때 만들어 졌다가 함수가 끝나면 사라지는 함수
전역변수 : 프로그램 전체에서 호출해서 사용할 수 있는 함수
예) 군대에서 경기근무를 위해 군인에게 총기를 나눠주는 경우
1
# 지역변수, 전역변수
gun = 10
def checkpoint(soldiers) : # 경계근무 나간 군인
gun = gun - soldiers
print("[함수 내] 남은 총의 갯 수 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명의 군인이 경계근무를 나갔음
print("남은 총 : {0}".format(gun))
1
출력 - 에러가 발생함.
전체 총 : 10
gun = gun - soldiers
^^^
UnboundLocalError: cannot access local variable 'gun' where it is not associated with a value
- 값이 지정되지 않은 지역변수 gun 에 접근할 수 없음
- 밑줄 쳐진 변수 gun은 함수 내에서만 만들어진 변수로 밖에 있는 gun과 다름. 변수 초기화가 되어 있지 않음.
2
# 지역변수, 전역변수
gun = 10
def checkpoint(soldiers) : # 경계근무 나간 군인
gun = 20
gun = gun - soldiers
print("[함수 내] 남은 총의 갯 수 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명의 군인이 경계근무를 나갔음
print("남은 총 : {0}".format(gun))
<출력>
전체 총 : 10
[함수 내] 남은 총의 갯 수 : 18
남은 총 : 10
3
# 지역변수, 전역변수
gun = 10
def checkpoint(soldiers) : # 경계근무 나간 군인
global gun # 전역공간에 있는 gun 변수를 사용하겠다의 의미
gun = gun - soldiers
print("[함수 내] 남은 총의 갯 수 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명의 군인이 경계근무를 나갔음
print("남은 총 : {0}".format(gun))
<출력>
전체 총 : 10
[함수 내] 남은 총의 갯 수 : 8
남은 총 : 8
4. 실제 프로그램에서 지역변수를 잘 사용하지 않고 return 을 활용함.
# 지역변수, 전역변수
gun = 10
def checkpoint(soldiers) : # 경계근무 나간 군인
global gun # 전역공간에 있는 gun 변수를 사용하겠다의 의미
gun = gun - soldiers
print("[함수 내] 남은 총의 갯 수 : {0}".format(gun))
def checkpoint_ret(gun, soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총의 갯 수 : {0}".format(gun))
return gun
print("전체 총 : {0}".format(gun))
#checkpoint(2) # 2명의 군인이 경계근무를 나갔음
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}".format(gun))
<출력>
전체 총 : 10
[함수 내] 남은 총의 갯 수 : 8
남은 총 : 8
'SW.AI 트랙 > python' 카테고리의 다른 글
[Python] 파이썬, 표준 입출력 (0) | 2023.05.26 |
---|---|
[Python] 파이썬 예제풀이. map/input/split. 할인된 물건값 구하기 (0) | 2023.03.23 |
[Python] 파이썬. input/map/split 입력값 받기 (0) | 2023.03.23 |
[Python] 파이썬. 두 개 리스트를 비교하는 3가지 방법. for~if. set. sort (0) | 2023.03.20 |
[Python] 파이썬. 함수/키워드값 (0) | 2023.03.17 |