파이썬은 쉬운 문법과 강력한 기능으로 프로그래밍 입문자들에게 인기가 많습니다. 그중에서도 변수와 할당 개념은 파이썬을 배우는 데 있어 가장 중요한 기초 개념 중 하나입니다. 이 글에서는 초보자를 위해 파이썬 변수의 개념과 다양한 할당 방식에 대해 쉽게 설명합니다.
변수와 할당은 파이썬뿐만 아니라 모든 프로그래밍 언어에서 사용되며 가장 처음에 학습하는 영역입니다. 가장 중요한 개념이라서 많은 서적과 강의에서도 가장 초반에 배치하고 있습니다. 이 개념의 이해가 선행되어야만 코딩 학습을 지속할 수 있습니다.
1. 파이썬 변수란?
변수는 데이터를 저장하는 공간입니다. 프로그래밍에서 변수를 사용하면 특정 값을 저장하고, 이를 재사용할 수 있습니다. 파이썬에서는 별도의 변수 선언 없이 값을 할당하는 방식으로 변수를 생성합니다.
▶ 변수 선언과 할당
파이썬에서는 =
연산자를 사용하여 변수를 생성하고 값을 할당합니다.
x = 10 # 변수 x에 10을 할당
y = "Hello" # 변수 y에 문자열 할당
z = 3.14 # 변수 z에 실수 값 할당
이렇게 변수를 선언하면, 파이썬은 자동으로 변수의 타입을 결정합니다.
▶ 변수의 특징
- 동적 타이핑(Dynamic Typing): 변수의 자료형을 명시적으로 지정할 필요 없이, 할당된 값에 따라 자동으로 타입이 결정됩니다.
- 객체 지향적 특성: 파이썬의 모든 변수는 객체(Object)로 취급됩니다.
- 재할당 가능: 같은 변수에 여러 번 값을 할당할 수 있으며, 값이 변경될 때마다 새로운 객체를 참조하게 됩니다.
a = 5
a = "변경됨" # 정수에서 문자열로 변경 가능
2. 변수의 메모리 할당 방식
파이썬에서 변수를 선언하면 실제 값이 저장되는 것이 아니라, 객체의 참조 주소 가 변수에 저장됩니다.
▶ 변수와 메모리 주소
다음 예제를 실행하면 id()
함수를 통해 변수의 메모리 주소를 확인할 수 있습니다.
a = 10
b = a
print(id(a)) # 140705431876912 (예시)
print(id(b)) # 140705431876912 (같은 주소를 참조)
여기서 b = a
는 b
가 a
가 가리키는 같은 객체(10)를 참조 한다는 뜻입니다.
▶ 변수의 얕은 복사와 깊은 복사
- 얕은 복사(Shallow Copy): 새로운 변수를 생성해도 동일한 객체를 참조
- 깊은 복사(Deep Copy): 원본 객체와는 독립적인 새로운 객체를 생성
import copy
x = [1, 2, 3]
y = x # 얕은 복사
z = copy.deepcopy(x) # 깊은 복사
x.append(4)
print(y) # [1, 2, 3, 4] (같은 객체를 참조하므로 변경됨)
print(z) # [1, 2, 3] (깊은 복사했으므로 원본과 독립적)
3. 파이썬 변수의 다양한 할당 방식
파이썬에서는 여러 개의 변수에 값을 할당하는 다양한 방법을 제공합니다.
▶ 다중 할당 (Multiple Assignment)
한 번에 여러 변수를 선언하고 값을 할당할 수 있습니다.
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3
▶ 동일한 값 할당
여러 개의 변수에 동일한 값을 할당할 수 있습니다.
x = y = z = 100
print(x, y, z) # 100 100 100
▶ 변수 값 교환 (Swap)
두 변수의 값을 교환하는 것도 간단합니다.
a, b = 10, 20
a, b = b, a # 변수 값 교환
print(a, b) # 20 10
▶ 언패킹 (Unpacking)
리스트나 튜플의 값을 여러 변수에 나누어 저장할 수도 있습니다.
data = [4, 5, 6]
x, y, z = data
print(x, y, z) # 4 5 6
🔍 결론
파이썬의 변수는 객체를 참조하는 방식으로 동작하며, 동적 타이핑을 지원하여 유연하게 사용할 수 있습니다. 또한 다양한 할당 방식을 제공해 코드의 가독성을 높일 수 있습니다. 초보자라면 변수의 기본 개념을 확실히 이해하고, 실습을 통해 직접 다뤄보는 것이 중요합니다. 파이썬 변수에 대해 더 깊이 배우고 싶다면, 다양한 실습 문제를 풀어보는 것도 좋은 방법입니다!