- 개요
파이썬에서 데이터를 저장하는 변수에 대해서 알아본다
1) 파이썬의 스코프
# 함수 스코프 : 함수 내부에 선언된 변수는 외부에서 유효하지 않음
def func_temp():
asd = "asd"
# print(asd) - 에러 발생
# 조건문 : 파이썬은 '블록 스코프'가 없으므로 조건문 내 변수도 외부에서 유효함
if 1 < 2:
abc = "abc"
print(abc)
# 반복문 : 반복문 내에서 생성된 변수나 루프 인덱스도 외부에서 유효함
for i in range(3):
msg = "msg"
print(i)
print(msg)
개발 언어에는 블록 스코프라는 개념이 존재하여 코드 블록을 기준으로 변수의 유효 범위를 결정한다
C++이나 자바와 같은 언어에서는 코드 블록이 끝나면 그 안의 변수는 더 이상 유효하지 않다
그러나 파이썬은 블록 스코프가 아닌 함수 스코프를 사용하여 함수가 끝나지 않은 이상 블록내의 변수는 유효하다
따라서 위와 같이 코드를 구성할 수 있다

코드를 실행한 결과는 위와 같다
조건문과 반복문에서 초기화한 변수들을 외부에서도 사용할 수 있다
반복문에서 주의해야 하는 것은 인덱스의 경우 최종적으로 수정된 값으로 결정된다는 점이다
2) 파이썬의 변수
변수는 크게 2가지로 분류할 수 있다
각각 전역 변수와 지역 변수로 표현하며 다음과 같다
- 전역 변수 : 스코프에 제한되지 않으며 전역 범위에서 유효한 변수
- 지역 변수 : 스코프에 제한되며 지역 범위에서만 유효한 변수
이때 파이썬의 경우 LEGB 규칙에 따라 변수를 사용한다
왼쪽부터 참조하며 오른쪽 순서대로 이동한다
- Local(지역) : 함수 내부에서 선언된 변수
- Enclosed(중첩) : 중첩 함수에서 바깥쪽 함수에서 선언된 변수
- Gloabl(전역) : 전역으로 선언된 변수
- Built-In(내장) : 파이썬에서 기본적으로 제공하는 변수
3) 전역 변수와 지역 변수, 중첩된 함수 변수의 사용
num = 1
# 전역 변수를 사용하는 함수
def increase_num_global():
print(f"Using Global num, num is {num} and num + 1 is {num + 1}")
# 지역 변수를 사용하는 함수
def increase_num_local():
num = 2
print(f"Local num is {num}")
# 중첩된 함수
def increase_num_enclosed():
local_num = num
print(f"Using Global num, num is {local_num}")
local_num = 10
def increase_num_inside():
nonlocal local_num
print(f"In enclosed function, num is {local_num}")
increase_num_inside()
increase_num_global()
increase_num_local()
increase_num_enclosed()
위와 같이 코드를 구성하여 전역 변수 + 지역 변수 + 중첩된 함수 변수를 사용하였다
함수 스코프 내에서 선언된 변수는 해당 스코프에서만 유효하다
또, 중첩된 함수에서 바깥쪽 함수의 변수를 사용하기 위해서는 nonlocal 키워드를 수식하여 사용할 수 있다

코드의 실행 결과는 위와 같다
전역 변수의 값과 전역 변수에 + 1을 실행한 값이 첫 번째로 출력되었고,
이어서 지역 변수의 값이 두 번째로 출력되었다
마지막으로 전역 변수의 값과 중첩된 함수의 변수의 값이 출력된 것을 확인할 수 있다
4) 전역 변수의 값의 수정
# 전역 변수를 수정하는 함수
def edit_num():
global num
num += 1
print(f"Num is {num}")
edit_num()
print(f"Num has chaned to {num}")
num = 1
# 전역 변수를 수정하는 방식은 권고되지 않음
def not_edit_num():
return num + 1
print(f"Num is {num}")
print(f"Num has changed to {not_edit_num()}")
print(f"Num is still {num}")
함수에서 전역 변수를 수정하는 것은 기본적으로 불가능하지만,
global 키워드를 수식하여 전역 변수의 값을 수정하는 것이 가능하다
다만, 전역 변수를 수정하는 방식은 권고되지 않으며 일반적으로 return 키워드를 사용하여
수정하고자 하는 값을 반환하는 방식을 사용하는 것이 권장된다

실행 결과는 위와 같다
빨간색으로 표시된 범위는 전역 변수를 수정한 코드이다
표시되지 않은 범위의 실행 결과는 return 키워드를 사용하여 전역 변수를 수정하지 않은 코드이다
5) 상수 변수
# 파이썬에서 상수 변수는 일반적으로 대문자로 선언
PI = 3.14159
URL = "www.google.com"
상수 변수는 프로그래밍에서 한번 값이 결정된 이후 그 값이 바뀌지 않는 변수를 의미한다
C++이나 JAVA와 같은 언어에서는 상수 변수를 위해 const나 final 같은 키워드를 제공하지만
파이썬에서는 그러한 키워드가 존재하지 않는다
따라서 암묵적으로 대문자로 상수 변수를 선언하여 사용한다
'Python > 파이썬 - 기초' 카테고리의 다른 글
| 함수 심화 (2) (0) | 2026.05.04 |
|---|---|
| 딕셔너리 (0) | 2026.05.03 |
| 함수 심화 (0) | 2026.05.01 |
| 반복문과 함수 정의 (0) | 2026.04.29 |
| 파이썬의 랜덤 / 리스트 (0) | 2026.04.28 |