[Python] 가변객체, 불변객체 그리고 데이터 유형

김예진·2020년 8월 26일
0

Python

목록 보기
2/14
post-thumbnail

0. 객체란?

컴퓨터 프로그램은 정보를 메모리 위에 올려서 처리하는데, 이 메모리 위에 있는 정보를 의미있는 덩어리로 묶어두기 위한 단위가 필요하다. 이 단위를 파이썬에서는 객체(object)로 관리한다.

한마디로 객체 = 개별 데이터!이며 객체에는 값(value)·유형(type)·정체성(identity)이라는 세 특성이 있다.

정의구하는 함수
값(value)메모리에 기록된 내용객체는 값 그 자체, 그 자신으로 평가됨.
유형(type)데이터의 종류type()
정체성(identity)각각의 객체를 식별하기 위한 고유 번호id()

  • 값(value) : 메모리에 기록된 내용. 값이 바뀌느냐 바뀌지 않느냐에 따라 가변 객체와 불변 객체로 나눠진다.
  • 유형(type) : 데이터의 종류. 유형에 따라 그 값을 어떻게 읽고 다루어야 할지가 결정된다.
  • 정체성(identity) : 각각의 객체를 식별하기 위한 고유 번호. 객체가 메모리 속에서 위치한 주소 값이기도 하다.

값과 유형이 동일한 데이터가 메모리 공간에 여러 개 존재할 수는 있지만, 이들은 서로 별개의 객체이며 정체성이 서로 다르다.



1. 가변객체와 불변객체


정의데이터 유형 속성
가변객체(mutable)객체에 할당된 값 수정 가능리스트(list), 딕셔너리(dic), 세트(set)call by reference
불변객체(immutable)객체에 할당된 값 수정 불가일반적인 데이터 유형들(int, str, bool 등), 튜플(tuple)call by value

2. 데이터 유형(=data type, 자료형)

☝🏻 파이썬에서 데이터를 다룰 때 데이터의 종류를 의미한다.
☝🏻 변수를 만들 때 사용자가 데이터 유형을 결정하지 않아도 파이썬 내부에서 자동으로 데이터 유형을 판단하여 적용된다.
☝🏻 데이터 유형 확인은 type() 함수를 사용해서 확인한다.
☝🏻 필요에 따라 데이터 유형을 변경할 수 있다. (아래의 자료형 변환 부분 참고)


1) 숫자형

  • 종류
    (1) 정수형 (int)
    (2) 실수형 (float)
    (3) 복소수형 (complex) .. 등

  • 특징
    : 연산 가능
    : 숫자를 다루는 내장함수(range, round,pow 등) 사용 가능

  • 산술 연산자
    : 파이썬 산술 연산자에도 우선 순위가 있다. +보다 *이 먼저!, ( ) 안에 있는 연산이 먼저!

연산자설명
+더하기
-빼기
*곱하기
/나누기
**제곱
//몫 구하기
%나머지 구하기


2) 논리형

  • 종류
    (1) bool

  • 특징
    : 참과 거짓을 나타냄
    : 주로 비교 & 논리 연산자로 만들어짐. 조건문에 많이 활용됨.

  • 비교 연산자
연산자설명
<작다
<=작거나 같다
>크다
>=크거나 같다
==같다
!=같지 않다

  • 논리 연산자
연산자설명
x or yx나 y 둘 중 하나만 참이면 참
x and yx,y 모두 참이어야 참
not xx가 True(참)이면 False(거짓)
x가 False(거짓)이면 True(참)


3) 문자열형

  • 종류
    (1) str

  • 특징
    : 다른 언어들과 달리 파이썬은 문자와 문자열을 따로 구분하지 않는다.
    : '작은따옴표' 혹은 "큰따옴표"에 감싸져있음
    : 연산 불가능 (예외 : 문자 + 문자 , 문자 * 정수는 가능)
    : 문자열을 다루는 다양한 method들이 존재한다 (예 : split, upper, join 등)


4) 군집자료형

  • 종류
    (1) 리스트 (list) : 데이터를 순차적으로 저장하는 열거형 집합
    (2) 튜플 (tuple) : 처음 저장한 값을 변경할 수 없는 열거형 집합
    (3) 세트 (set) : 순서가 없고 중복이 허용되지 않는 집합
    (4) 사전 (dic) : 순서(index, 색인)가 아닌 키와 값이 쌍으로 구성된 집합

  • 특징
    : 여러 데이터를 모은 집합 형태의 자료형



3. 자료형 변환(type casting) 방법

파이썬은 사용자가 자료형을 결정하지 않으므로 사용자의 의도와 다른 자료형으로 입력될 수 있다. 이때는 각 데이터들의 자료형을 원하는 자료형으로 변경해야한다.

ex) input( ) 사용, 정수와 실수의 사용 등

ex)

✏️ 코드 입력시

str(10) 
: 10이라는 int(정수형)을 str(문자열)로 변경한다는 뜻

✏️ 코드 입력시

int('10')
: 10이라는 str(문자열)을 int(정수형)로 변경한다는 뜻

✏️ 코드 입력시

int('12.5')
: 12.5라는 float(실수형)을 int(정수형)로 변경한다는 뜻

✏️ 코드 입력시

list('hello')
: hello 라는 str(문자열)을 list(리스트)로 변경한다는 뜻
profile
Backend Developer 🌱 벨로그 내용을 티스토리로 이사중~!

0개의 댓글