파이썬의 자료형에 대해 알아보자.

코린이서현이·2024년 4월 27일
0
post-thumbnail

🤔 들어가면서

이렇게 공부를 하다보면 고민이 되는 게, 왜 내 벨로그는 성장하지 않을까?와 
이게 맞는지... 

파이썬의 자료형

숫자

파이썬에는 long이 없이 int형만 존재하며 임의정밀도만 지원한다.
따라서 파이썬의 숫자자료형에는 한계가 없다👍

임의정밀도는 무제한 자릿수를 제공하지만, 속도가 느리다는 단점이 있다.

불리언값

논리자료형인 Ture나 False는 사실 정수값 1(True), 0(False)을 가지는 숫자다.

매핑

키와 자료형으로 구성된 복합 자료형이고 내장 자료형으로는 딕서너리(dict)가 있다.

집합

중복을 허용하지 않는 자료형이다.

파이썬의 set

  • 순서가 유지되는 않지만 반복문을 사용할 수 있는 iterable객체이다.

선언 방법 1. = set()
선언 방법 2. {요소들}, 딕셔너리와 동일하게 중괄호를 사용한다.

//방법 1
a = set()

a.add(1)
a.add(1)
a.add(2)
a.add(3)

print(a)			//{1,2,3}

//방법2
b = {2,3,4,5,5}
print(b)			//{2, 3, 4, 5}

시퀀스

  • 순서가 있고, 순서가 유지되는 자료형이다.

시퀀스에는 가변객체와 불변객체가 있다.

  • 가변 객체: 리스트
  • 불변 객체: 문자열, 튜플, 바이트
str_1 = "set"
str_2 = "set"

print(id(str_1))
print(id(str_2))

str_1 = "ert"
print(id(str_1))

#"set"과 "ert"는 생성되고 나서 변하지 않고, 메모리에 남아있다.

파이썬의 객체

원시타입과 객체타입

  • 원시타입 : 각 타입마다 차지할 수 있는 메모리 공간이 미리 정해져있다. 따라서 메모리 사용율이 높아지고, 연산이 빨라진다.
  • 객체타입 : 더 많은 메모리 공간을 사용할 수 있고, 부가적인 기능(문자변환)을 사용할 수 있다. 메모리 점유율은 늘어나고, 연산 속도는 늦어진다.

파이썬은 숫자, 문자 모두 객체다.

불변 객체

불변 객체는 해당 값이 메모리에 올라가고 변경되지 않는다.

불변 객체에서 중요한 것은 참조변수에 불변객체값을 바꾼다고, 객체의 값이 변경되는 것이 아니라, 새롭게 넣은 값이 새롭게 메모리에 올라가고 그 메모리의 주소값을 참조하는 것으로 바뀐다는 것이다.

즉, 같은 값을 참조하고 있는 변수 a,b가 있을 때 a의 값을 바꿔도 b에 영향이 가지 않는다. 또한 a의 값을 변경할 수는 없다. 새로운 값이 들어가는 것 뿐이다.

t1 = (1,2,3)
t2 = t1

t1 = (4,5,6)
print(t2)	#(1,2,3)

불변객체의 종류

  • 부울
  • 정수
  • 실수
  • 튜플
  • 문자

가변 객체

가변 객체는 값이 변경될 수 있다.

같은 값을 참조하고 있는 a와 b가 있을 때, a의 값을 변경하면 b도 함께 변화한다.
(새로 할당하는 것과는 다르다.)

l1 = [1,2,3]
l2 = l1

l1[1] = 4

print(l2)	#[1,4,3]

가변객체의 종류

  • 리스트
  • set
  • 딕셔너리

⭐ 파이썬의 ==와 is

== : 값을 비교한다.
is : id()값을 비교한다.

a = [1,2,3]
b = list(a)

print(a is b)       #False
print(a == b)       #True

😏 마무리하면서

가변객체의 경우 값이 변하기 때문에, 새로 할당하는 것이 아니라 값을 변경했을 때는
그 객체를 참조하고 있는 참조변수가 모두 영향받는다~!
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글