자료형
파이썬에서 자료형은 class라고 생각하면 된다.
모든 자료형은 class로 구현되어 있다.
__class__ 속성을 통해 자료형을 알 수 있다.
a :int = 1
print(a.__class__)
# <class 'int'>
변수나 값의 자료형을 알아보려면 type() 함수를 사용하면 된다.
type(None)
type(True)
숫자형
int : 정수
10 # 양의 정수
-10 # 음의 정수
0b11 # 2진수
0O12 # 8진수
0x1a # 16진수
- Python3부터 arbitrary precision을 지원하여 오버플로우 발생하지 않게 되었다.(long 타입 삭제)
- Arbitrary precision은 사용할 수 있는 메모리양이 정해져 있는 fixed-precision과 달리, 현재 남아있는 만큼의 가용 메모리를 수 표현에 가져다 쓸 수 있는 형태
int() 함수로 값을 10진 정수로 변환 가능
int(10.1)
# 10
float : 소수점이 포함된 숫자
0.1 # 양의 소수
-0.12 # 음의 소수
32.3e100 # 지수 표기법 - 지수 값이 계산된 값이 나옴
32.3E100 # 지수 표기법 - 소수e + ~ 형태로 값이 나옴
float() 함수로 값을 소수로 변환 가능
float(10)
# 10.0
complex : 복소수
3.14j # 복소수 표현
45.j # 복소수 표현
3+10j # 실수부, 허수부 표현
시퀀스 자료형
문자열(str)
파이썬 문자열의 특징
- ' '와 " "를 구분하지 않고 둘 다 문자열 표현으로 사용한다.
- 따로 문자 타입이 없고 한 글자도 문자열로 표현
- " 또는 '를 3개씩 써서 주석으로 표현하거나 이 것을 변수에 할당하면 문자열이 된다.(이 경우 개행 문자도 포함)
- +(연결), *(반복)로 문자열 연산이 가능하다.
- 여러 개의 문자가 메모리 상에 한 줄로 늘어져있는 형태로 저장되기 때문에 슬라이싱이라는 기법을 통해 원하는 문자만 잘라서 사용할 수 있다.([] or [:])
st1: str = "안녕하세요"
st2: str = '안녕하세요'
st3: str = """
안녕하세요
"""
st4: str = '''
안녕하세요
'''
""" """ # 여러줄 주석으로 사용 가능
''' ''' # 여러줄 주석으로 사용 가능
# 문자열 슬라이싱
st: str = "안녕하세요"
print(st[:2]) # 안녕
# [start:end:step]
# start : 생략 시 0부터 시작, start부터 end-1까지 step 간격으로 문자열을 자른다.
# end : 생략 시 끝까지, end-1 까지 문자열을 자른다.
# step : 생략 시 1, 문자열을 자르는 간격이다.
str() 함수를 통해 시퀀스 자료형을 문자열로 변경할 수 있다.
str(["h","e","l","l","o"])
리스트(List)
값들이 쉼표(,)로 구분되고 대괄호([])로 묶인 자료형이다.
특징
- 배열과의 차이점은 리스트에 속한 모든 항목이 다른 데이터 유형(모든 자료형)이 될 수 있다.
- 슬라이싱을 지원한다.
- 다양한 제어 메서드들을 지원한다.
l: list = [1,"1",'하이',0.1,0x12,[1,2]]
list() 함수를 통해 시퀀스 자료형을 list 자료형으로 변경할 수 있다.
list(range(5))
# [0,1,2,3,4]
"리스트컴프리헨션(List Comprehension)"은 for문을 사용해 리스트를 생성하는 방법이다.
- 중첩 for문이 사용가능하다.
- if 문을 사용해 조건에 맞는 값만 리스트에 넣을 수 있다.
- 파이썬 인터프리터에 최적화되어 있어서 우수한 성능을 가진다.
l1 = [x for x in range(5)]
# l1 = [0,1,2,3,4]
l2 = [x for x in range(5) if x%2==0]
# l2 = [0,2,4]
l3 = [x if x%2==0 else x+1 for x in range(5)]
# l3 = [0,2,2,4,4]
튜플(Tuple)
값들이 쉼표(,)로 구분되고 소괄호(())로 묶인 자료형이다.
특징
- 배열과의 차이점은 리스트에 속한 모든 항목이 다른 데이터 유형(모든 자료형)이 될 수 있다.
- 슬라이싱을 지원한다.
- 값을 수정할 수 없다.
- 원소가 1개일 경우 다음 처럼 선언할 수 있다.
t: tuple = 1,
- 다양한 제어 메서드들을 지원한다.
t: tuple = (1,"2",(1,2),[1,2])
tuple() 함수를 통해 시퀀스 자료형을 tuple 자료형으로 변경할 수 있다.
tuple([1,2,3,4])
# (1,2,3,4)
딕셔너리(Dictionary)
"키:값" 쌍으로 이루어진 값들이 쉼표(,)로 구분되고 소괄호({})로 묶인 자료형이다.
특징
- 키, 값의 쌍들의 집합으로 저장된다.
- 키는 숫자, 문자열이 가능하다.
- 값은 어떤 자료형이든 가능하다.
- 다양한 제어 메서드들을 지원한다.
dic: dict = {'a':[1,2,3,4],'b':1,'c':(1,2,3),'d':{'1':12}}
dict() 함수를 통해 시퀀스 자료형(사전 형태)을 dict 자료형으로 변경할 수 있다.
dict([[1,2],[2,4],[3,3]])
집합(set)
값들이 쉼표(,)로 구분되고 소괄호({})로 묶인 자료형이다.
- 값들은 순서가 없다.
- 다양한 제어 메서드들을 지원한다.
set() 함수를 통해 시퀀스 자료형을 set 자료형으로 변경할 수 있다.
set([1,2,3,4,5])
기타 자료형
NoneType
변수가 비어있음을 나타내는 표시이다.
print(None)
bool
True와 False로 참, 거짓을 나타내는 자료형이다.
print(True)
print(False)
bool() 함수를 통해 자료형을 bool 자료형으로 변경할 수 있다.
bool(1)
bool(0)
function
함수 자체도 자료형이 될 수 있다.
def f():
return 1
type(f)
'Langauge > Python' 카테고리의 다른 글
[Python] 6. 클래스와 모듈 (0) | 2023.02.11 |
---|---|
[Python] 5. 함수 (0) | 2023.02.10 |
[Python] 3. 제어문 (0) | 2023.02.10 |
[Python] 2. 변수, 연산자, 기본 입출력 (0) | 2023.02.10 |
[Python] 1. 파이썬 시작 (0) | 2022.10.01 |