티스토리 뷰

#11 파이썬 chapter 11. 자료형의 값을 저장하는 공간, 변수

 

오늘 적을 내용은 나와 같이 프로그래밍 초보자가 바로 이해하기 어려운 부분이라 당장 이해가 되지 않는다면 편하게 지나간다는 느낌으로 공부 해 보자. 앞으로 파이썬에 대해 공부하다 보면 자연스럽게 알게 될 것이다.

 

 

a = 1
b = "python"
c = [1, 2, 3]

 

변수를 만들 떄는 위 예처럼 = 기호를 사용한다.

 

변수이름 = 변수에 저장할 값

 

1. 변수란?

 

파이썬에서 사용하는 변수는 객체를 가리키는 것이라고 말할 수 있다. 객체란 우리가 지금껏 공부 하면서 봤던 자료형과 같은 의미이다.

 

a = [1, 2, 3]

 

위 코드처럼 a = [1, 2, 3]  이라고 하면 리스트 자료형이 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리킨다.

 

a 변수가 가리키는 메모리의 주소는 다음과 같이 확인할 수 있다.

 

a = [1, 2, 3]
id(a)
2744272885696

 

위 처럼 id 함수는 변수가 가리키는 객체의 주소 값을 돌려주는 파이썬 내장 함수이다. 즉 여기에서 만든 변수 a가 가리키는 [1, 2, 3] 리스트의 주소 값은 4303029896 인 것을 알 수 있다.

 

2. 리스트 복사할 때

 

이번에는 리스트 자료형에서 가장 혼동되기 쉬운 '복사' 에 대해 알아보자.

 

a = [1,2,3]
b = a

 

b 변수에 a 변수를 대입하면 어떻게 될까? b와 a는 다른 걸까? 결론부터 말하면 b는 a와 완전히 같다고 볼 수 있다.

다만 [1,2,3] 리스트를 참조하는 변수가 a 변수 1개에서 b 변수가 추가되어 2개로 늘어났다는 차이만 있을 뿐이다.

 

id(a)
2744272726336
id(b)
2744272726336

 

id(a) 와 id(b) 가 동일하다는 것을 볼 수있다.

 

a is b
True

 

동일한 객체를 가리키고 있는지에 대해서 판단하는 파이썬 명령어 is를 사용하여 실행해도 역시 참(True)를 돌려준다.

 

다음 예를 계속해서 살펴보자.

 

a[1] = 4
a
[1, 4, 3]
b
[1, 4, 3]

 

a 리스트의 두번째 요소를 4로 바꾸었더니 a만 바뀌는 것이 아니라 b도 똑같이 바뀌었다. 그 이유는 앞에서 살펴본 것처럼 a,b 모두 동일한 리스트를 가지고 있기 때문이다.

그렇다면 b변수를 생성할 때 a변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만들수는 없을까? 

다음과 같이 2가지 방법이 있다.

 

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
a = [1, 2, 3]
b = copy(a)

 

두 번째는 copy 모듈을 사용하는 방법이다. 위 예를 보면 from copy import copy 라는 처음 보는 형태의 문장이 나오는데, 이것은 나중에 다시 다루도록 하자. 여기선 단순히 copy 함수를 쓰기위해서 사용하는 것이라고만 알아두자.

위 예에서  b = copy(a) 는 b = a[:] 과 동일하다.

 

a
[1, 2, 3]
b
[1, 2, 3]
a is b
False

 

위 예에서 b is a가 False를 돌려주므로 b와 a가 가리키는 객체는 서로 다르다는 것을 알 수 있다.

 

3.  변수를 만드는 여러가지 방법

 

a, b = ('python', 'life')

 

위 예문처럼 튜플로 a, b에 값을 대입할 수 있다. 이 방법은 아래와 예문과 완전히 동일하다.

 

(a, b) = 'python', 'life'

 

 튜플 부분에서도 언급했지만 튜플은 괄호를 생략해도 된다.

 

[a, b] = ['python', 'life']

 

위처럼 리스트로 변수를 만들 수도 있다.

 

또한 여러 개의 변수에 같은 값을 대입할 수도 있다.

 

a = b = 'python'

 

a = 3
b = 5
a, b = b, a
a
5
b
3

 

파이썬에서는 위 방법을 사용하여 두 변수의 값을 아주 간단히 배울 수 있다.

처음에 a에 값 3, b에는 값 5가 대입되어 있었지만 a, b = b, a 문장을 수행한 후에는 그 값이 바뀌었음을 확인할 수 있다.

 

출처 : 점프 투 파이썬

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함