# 형태 : 변수명 = 변수에 저장할 데이터
a = 1
b = "hello"
c = [1, 2, 3]
(d, e) = ('hello', 'world') # 튜플을 이용해 여러 변수에 대입 가능
[f, g] = ['hello', 'world'] # 리스트을 이용해 여러 변수에 대입 가능
h = i = 123 # 여러개의 변수에 같은 값 대입 (같은 곳을 가리킴)
파이썬은 C와 JAVA같은 프로그래밍 언어와는 다르게 변수의 자료형을 직접 지정해 주지 않아도 저장될 데이터를 스스로 판단하여 자료형을 지정해 저장하기 때문에 편리하다.
파이썬에서의 변수는 객체를 가르키는 것
a = [1, 2]
# 위와 같은 선언은 [1, 2] 값을 갖는 리스트 자료형(객체)를 생성해 메모리에 저장하고,
# 변수 a에 의해 그 메모리 주소를 가리키게 됨
id(a)
'''
<결과>
4203029456
'''
# 변수 a가 가리키고 있는 메모리 주소값은 4203029456임. 그 곳에는 리스트 [1, 2]가 저장되어 있음.
<aside>
💡 id()
함수
변수가 가리키고 있는 객체의 주소 값을 반환해 주는 파이썬 내장 함수
</aside>
a = [1, 2, 3]
b = a
id(a)
id(b)
a is b # a변수와 b변수가 가리키는 객체가 동일한지 체크하는 파이썬 명령어
'''
<결과>
4203029456
4203029456
True
'''
이와 같은 방법으로 b
에 a
를 대입하는 방법은 a
와 b
가 동일한 메모리 공간을 가리키는 것이다.
이 방법의 문제는 변수a
를 이용해 리스트를 수정하면, 변수b
또한 동일한 데이터를 가리키므로 변수b
를 이용해 참조해도 바뀐 데이터가 참조된다.
서로 다른 주소의 변수에 복사하는 방법