[02. 문법] 2.2 데이터 타입 - int, str, list, set, bool, bytes
작성자 : kim2kie
(2023-02-19)
조회수 : 2009
[참조]
- Dookie Kim, Python: From Beginning to Application, 2022
https://www.dropbox.com/s/oa86j9ap62esmtz/Python.pdf?dl=0
파이썬 코딩에 사용되는 데이터 타입은 다음과 같다.
(1) Numeric(숫자) 타입: int(정수), float(실수), complex(복소수)
(2) Sequence(나열) 타입: str(문자열), list(리스트=목록), tuple(튜플)
(3) Mapping(매핑) 타입: dict(딕셔너리)
(4) Set(집합) 타입: set(집합)
(5) Boolean(불리언~참/거짓) 타입: bool(불리언)
(6) Binary(바이너리~이진수) 타입: bytes, bytearray, memoryview
[Q] 변수의 데이터 타입 확인할 수 있을까?
[A] type(), isinstance() 함수로 확인할 수 있다.
1. type() : 인자(argument)로 전달된 객체의 타입을 리턴
2. isinstance() : 타입과 일치하는지 확인
(1) Numeric(숫자) 타입: int(정수), float(소수), complex(복소수)
- Numeric 타입으로는 int, float, complex가 있다.
- int와 float는 지정시 소수점의 유무에 따라 결정된다.
- 사칙연산에서는 가장 큰 데이터 타입으로 결정된다. 예외로 int와 int의 연산 결과는 항상 float이다.
- and, as, assert, break, class, continue, def, del, elif, else, except, FALSE
- Ex)
a = 5 # int
a = 2.0 # float
a = 1 + 2j # complex
- Q) float를 interger로 만드는 방법은?
A) 예) 12/4 -> 3.0 실수이므로, int(12/4) -> 3 정수 - Q) complex인 j와 1j는 다른가?
A) j는 변수로 인식되지만, 1j는 복소수의 허수로 인식된다.
따라서 복소수로 사용할 경우에는 1j를 사용한다.
- int() 함수: 문자 타입을 정수 타입으로 변환
>>> print(int('1'))
1
>>> height = int(input("Enter your height in cm: "))
- float() 함수
>>> float(input('x = ? '))
- complex() 함수
>>> complex(1+2j)
(2) Sequence(나열) 타입: str(문자열), list(리스트=목록), tuple(튜플)
- 문자 1개을 2바이트로 표현하는 유니코드 문자열은 str에, 문자 1개를 1바이트로 표현하는 ANSI 문자열은 bytes라는 클래스를 사용한다.
- list는 다른 언어의 배열처럼 사용하는 자료형이다. list라고 명명한 이유는 구성요소의 타입이 같을 필요가 없기 때문이다. 생성은 [] 기호로 둘러싸면 된다.
- tuple는 읽기 전용 리스트이다. 생성은 () 기호로 둘러싸면 되며, 한번 생성하면 바꿀 수 없다.
- Ex)
my_string = "Hello" # str
a = [5,10,15,20,25,30,35,40] # list; a[0:7]
t = (5,'program', 1+3j) # tuple; t[0:3]
- str() 함수: 숫자 타입을 문자열 타입으로 변환
>>> print(str(3))
3
- list() 함수: range(1,11) 객체를 list 타입으로 변환
>>> print(list(range(1, 11)))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list('python')
['p', 'y', 't', 'h', 'o', 'n'] # 문자열 -> 리스트
- tuple() 함수
tuple([1,2,3]) # 리스트 -> 튜플
(3) Mapping(매핑) 타입: dict(딕셔너리)
- dict 타입은 단어(Key; immutable)와 뜻(value; mutable)으로 매핑된(즉, 함께 있는) 순서가 없는 집합(사전)이다.
- Ex)
d = {1:'value','key':2} # dict; d[1],d['key']
- dict() 함수
(4) Set(집합) 타입: set(집합)
- set은 여러 개의 자료를 하나의 변수로 관리할 때 사용한다.
- set 타입은 중복된 데이터를 가질 수 없고, 순서가 없다.
- 따라서 순서와 관련된 인덱스기호([ ])를 사용할 수 없다.
- 중복 데이터를 만드는 +, *를 사용할 수 없다.
- in, not in, len()은 사용할 수 있다.
- Ex)
s = {"1", 3, 5, (1,3)} # set
- set() 함수
>>> set([1,2,3])
{1, 2, 3} #리스트 -> 집합
(5) Boolean(불리언~참/거짓) 타입: bool(불리언)
- Boolean 타입이란 논리값인 참(True)과 거짓(False) 중 한 가지만을 가질 수 있다.
- Ex)
a = True # bool
(6) Binary(바이너리~이진수) 타입: bytes, bytearray, memoryview
- 컴퓨터가 처리하는 데이터 형식인 바이너리(2진수) 데이터를 처리할 때는 bytes와 bytearray를 사용한다.
- Ex)
bytes(10) # bytes