지금까지 살펴본 지역변수와 전역변수의 사용 범위를 정리하면 다음과 같습니다.
▼ 표 13-3 지역변수와 전역변수의 범위
변수 |
함수 내부 |
함수 외부 |
지역변수 |
값 읽기 O 값 변경 O |
값 읽기 X 값 변경 X |
전역변수 |
값 읽기 O 값 변경 X(global 사용 시 값 변경 O) |
값 읽기 O 값 변경 O |
지역변수와 전역변수 비교
지역변수와 전역변수의 차이를 프로그램을 작성해 알아봅시다.
상점이나 벌점을 주는 reward_penalty() 함수를 정의하고, 이 함수를 호출해 현재 점수에 상점 5점을 추가해 보겠습니다. 프로그램을 다음과 같이 작성합니다.
def reward_penalty(kind, points):
print('현재 점수 :', current_point)
if kind == '상점':
current_point += points
elif kind == '벌점':
current_point -= points
return current_point
current_point = 5
reward_penalty('상점', 5)
print('최종 점수 :', current_point)