반응형
파이썬 변수(variable)란?
- 변수란 데이터를 담아두는 그릇으로, 마치 대명사와 비슷한 역할을 한다.
- 컴퓨터는 기본적으로 결과를 따로 저장하지 않는다. 그러므로 우리가 그 결과를 다시 사용하고 싶다면 변수라는 그릇에 따로 담아두어, 필요할 때 꺼내어 사용한다.
- 선언된 변수는 해당 프로그램이 종료될 때까지 계속해서 사용할 수 있다. 변수에 저장된 데이터를 변경하여 재활용할 수도 있지만, 변수 데이터를 변경하면 기존 데이터는 완전히 사라진다.
>>> a = [1, 2, 3]
>>> id(a)
4303029896
# id함수는 변수가 가리키고 있는 객체의 주소를 리턴해 주는 파이썬 내장함수
# a 변수가 가리키는 [1,2,3]이라는 리스트의 메모리 주소 반환
# [1, 2, 3] 이라는 값을 가지는 리스트 자료형(객체)이 자동으로 메모리에 생성되고
# 변수 a는 [1, 2, 3] 이라는 리스트가 저장된 메모리의 주소를 가리키게 된다
변수 선언 및 값 할당
- 파이썬에서는 변수를 선언할 때 따로 자료형을 지정하지 않아도 오류가 발생하지 않는다.
- 변수에 값을 할당 할 때 자동으로 자료형이 선언되며, 문법을 통해 강제하지 않을 뿐 파이썬에서도 자료형은 여전히 중요하다.
- 변수의 이름만으로 변수를 선언할 수 있으며, 등호 = 로 변수에 값을 할당한다.
# 변수명 = 값으로 선언
>>> a = 100 # 자동으로 정수 할당
>>> b = 100.0 # 부동 소수점 할당
>>> c = "홍길동" # 문자열 할당
# 튜플로 변수 a,b 대입
>>> a, b = ('python', 'life')
>>> (a, b) = 'python', 'life'
# 리스트로 변수 생성
>>> [a,b] = ['python', 'life']
# 동시에 여러 변수에 하나의 값을 할당
a = b = c = 1
# 여러 변수에 여러 개체 할당
a, b, c = 1, 2, "홍길동"
# 응용. 변수값 바꾸기
>>> a = 3
>>> b = 5
>>> a, b = b, a
>>> a
5
>>> b
3
동일 객체 판별
# 동일한 객체인지를 판별하는 is 연산자
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b # [1, 2, 3]이라는 동일한 값을 갖는 리스트지만
False # 서로 같은 객체는 아니므로 False
# 값이 일치하는지 판별하는 == 연산자
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True
변수 경로
- id() 함수는 객체의 고유 값을 리턴한다.
# b변수에 a변수를 대입하면 결론적으로 b와 a는 완전 동일하다
>>> a = [1, 2, 3]
>>> b = a # a가 가리키는 대상과 b가 가리키는 대상이 동일
>>> id(a)
4303029896 # 하지만 리스트를 참조하는 변수의 갯수가
>>> id(b) # 1개에서(변수 a) 2개가(변수 a,b) 되었다는 차이가 있음
4303029896
# 리스트 a에 또 다른 리스트를 추가하면 다른 값이 된다
>>> a = [1, 2, 3]
>>> id(a)
4302429640 # 이전에 리스트 a가 저장되어 있던 주소와 다른 값이 리턴
>>> a = a + [4, 5] # +를 이용하면 리스트 a의 값이 변하는 것이 아니라
>>> a
[1, 2, 3, 4, 5]
>>> id(a)
4302472072 # 두 리스트가 더해진 새로운 리스트가 리턴
# 리스트 a를 extend했을 때
>>> a = [1, 2, 3]
>>> id(a)
4303029896
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]
>>> id(a)
4302429640 # +기호와 달리 주소값이 변하지 않고 그대로 유지
4302429640
리스트 변수 복사시
- b 변수를 생성할 때 a와 같은 값을 가지도록 복사해 넣으면서 동시가 a가 가리키는 리스트와는 다른 리스트를 가리키게 하는데에는 2가지 방법이 있다.
# a와 b가 같을 때, a 수정시 b도 바뀜
>>> a = [1, 2, 3]
>>> b = a # a가 가리키는 대상과 b가 가리키는 대상이 동일
>>> a[1] = 4 # a 리스트의 2번째 요소를 4로 바꿈
>>> a # a뿐만 아니라 b도 바뀜
[1, 4, 3]
>>> b
[1, 4, 3]
# 1. [리스트 전체를 가리키는 [:]을 이용해서 복사
>>> a = [1, 2, 3]
>>> b = a[:] # 리스트 전체를 가리키는 [:]을 이용해서 복사
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3] # a 리스트 값을 바꿔도 b 리스트에는 영향 없음
# 2. copy 모듈 이용
>>> from copy import copy # copy라는 함수를 쓰기 위해서 사용
>>> b = copy(a) # b = a[:]과 동일
Reference
반응형
'Data > Python' 카테고리의 다른 글
[Python] 파이썬 숫자 자료형 - 정의, 연산, 숫자 개념 (1) | 2023.06.17 |
---|---|
[Python] 파이썬 데이터 타입 - 자료형 구분, 데이터 형식 변환 (0) | 2023.06.17 |
[Python] 파이썬 기본 연산자 - 산술,비교,할당,논리 (0) | 2023.06.17 |
[Python] 파이썬 기본 구문 - 식별자, 예약어, 인용, 주석, 입출력 (0) | 2023.06.17 |
[Python] 파이썬 개요 - 특징, 설치, 에디터, 버전 (1) | 2023.06.17 |