15. 파이썬 변수 – 자료형의 값 저장공간

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

파이썬 변수 라 함은 이제껏 공부했던 자료형들의 값이 저장되는 공간이라고 보시면 됩니다.

파이썬 변수 만들기

Python
>>> a = 2
>>> b = "computer"
>>> c = [2, 4, 6]

여태까지 공부했던 예제 중에 위처럼 a, b, c 같은 것들을 모두 변수라고 합니다.
=(assignment) 기호를 사용해서 만들 수 있습니다.


C 언어나 JAVA 언어에서는 변수를 만들기 전 변수의 자료형을 직접 지정해야만 합니다.
그렇지만 파이썬에서는 저장된 값을 확인하여 파이썬 자체에서 자료형의 타입을 지정해 주기 때문에 프로그램이이 더 편리해 지는 장점이 있습니다.

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

변수의 의미

파이썬 변수 는 객체를 가리키는 것이기도 합니다.
객체란 자료형의 데이터(요소, 값)을 의미합니다.

Python
>>> a = [2, 4, 6]

위 처럼 a = [2, 4, 6] 이라고 선언이 되어 있다면 [2 ,4, 6] 값을 가지는 리스트 데이터, 즉 객체가 메모리에 생성되며 변수 a 는 [2, 4, 6] 이라는 리스트가 저장된 메모리의 주소를 가리키게 됩니다.
여기서 저장된 메모라ㅣ의 주소는 다음과 같이 확인할 수 있습니다.

Python
>>> id(a)
2922320944448

id 함수를 사용해서 변수가 가리키는 객체의 주소값을 리턴받을 수 있습니다.
즉 변수 a 가 가리키는 리스트 [2, 4, 6] 의 메모리상의 주소값은 2922320944448 임을 알 수 있습니다.

리스트 복사

위에서 생성된 a 변수를 b 변수에 대입해 보면 어떻게 될까요?

Python
>>> b = a
>>> id(a)
2922320944448
>>> id(b)
2922320944448

id 함수를 사용해 a 변수와 a변수를 대입한 b 변수의 메모리 주소를 확인해보면 동일하다는것을 알 수 있습니다.
결론적으로 a 와 b 는 완전히 동일하다고 볼수 있습니다.

Python
>>> a is b # a와 b가 동일한 객체인가?
True

a 와 b 가 동일한 객체 인가를 확인해 보면 True 값이 리턴 되는걸 확인 할 수 있습니다.
is 는 동일한 객체를 가리키는지 판단하는 파이썬 명령어 입니다.

Python
>>> a[1] = 3
>>> a
[2, 3, 6]
>>> b
[2, 3, 6]

위 예를 보면 a 의 1번째 주소에 3 을 입력해서 [2, 4, 6] 에서 [2, 3, 6] 으로 리스트 요소가 변경되었고,
b 를 확인해 보니 b 도 동일하게 바뀌어 있습니다.
이는 a 와 b 가 모두 동일하게 같은 리스트를 가지고 있기 때문입니다.

리스트 다른 주소로 복사

앞선 예처럼 항상 같은 주소를 가리키게 할 수는 없습니다.
b 변수를 생성할 때 a 변수의 객체를 그대로 가지고 오면서 다른 주소를 가리키도록 해보겠습니다.

1. [:] 이용하기

리스트 전체를 의미하는 [:] 를 이용해 보겠습니다.

Python
>>> a = [2, 4, 6]
>>> b = a[:]
>>> b
[2, 4, 6]
>>> a[1] = 3
>>> a
[2, 3, 6]
>>> b
[2, 4, 6]

리스트 전체를 의미하는 [:]를 사용해 b 변수를 생성하면 a 변수의 리스트 값이 변하더라도 b 리스트에는 변화가 없습니다.

Python
>>> id(a)
2922317937472
>>> id(b)
2922320893696

id 를 사용해 확인해 보면 다른 주소를 가리키는 걸 확인할 수 있습니다.

2. copy 모듈 이용하기

copy 모듈을 사용하는 방법도 있습니다.

Python
>>> from copy import copy
>>> a = [2, 4, 6]
>>> b = copy(a)
>>> b
[2, 4, 6]

import 를 통해서 copy 라이브러리를 선언하고 copy(a) 를 통해서 b 변수를 생성했습니다.
b 변수에 들어있는 리스트는 a 와 동일하게 생성됨을 알 수 있습니다.

Python
>>> a is b
False

하지만 앞서 사용해 봤던 is 명령어를 사용해 확인해 보면 a 와 b 는 다른 객체라는 걸 확인 할 수 있습니다.

Python
>>> c = a.copy()
>>> c
[2, 4, 6]

리스트 자료형의 자체 함수인 copy 함수를 사용해 c 변수를 생성해도 동일하게 같은 리스트 객체를 가지고 올 수 있습니다.

변수를 만드는 방법들

튜플로 변수 만들기

다음은 튜플로 변수 a 와 b 에 값을 대입하는 방법입니다.

Python
>>> a, b = ('computer', 'enjoy')

위와 동일 하게 다음처럼 사용 할 수 도 있습니다.

Python
>>> (a, b) = 'computer', 'enjoy'

튜플은 괄호를 생략해도 됩니다.

리스트로 변수 만들기

Python
>>> [a, b] = ['computer', 'enjoy']

여러개 변수에 같은 값 대입

Python
>>> a = b = 'computer'

두 변수의 값 변경

Python
>>> a = 2
>>> b = 4
>>> a, b = b, a
>>> a
4
>>> b
2

위 예처럼 a 에는 2, b 에는 4 라는 값을 대입했고 그 이후에 a, b = b, a 문장으로 그 값을 서로 바꿀수 있습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
15. 파이썬 변수 – 자료형의 값 저장공간

Leave a Comment