기본 데이터 타입
- 숫자 (Number)
- int (정수, integer)
- float (부동 소수점, 실수, floating point number)
- complex (복소수, complex number)
- 문자열 (String)
- 참/거짓 (Boolean)
- None
숫자 (integer)
- 모든 정수의 타입은 int
- Python3 부터는 long 타입은 없고, 모두 int로 표기됨
- 매우 큰 수를 나타낼 때 오버플로가 발생하지 않음
- 오버플로: 데이터 타입별로 사용할 수 있는 메모리의 크기를 넘어서는 상황
- Arbitrary precision arithmetic을 통해 고정된 형태의 메모리가 아닌 가용 메모리들을 활용하여 모든 수 표현에 활용
- 진수 표현
# 2진수 - 0b
0b10 => 2
# 8진수 - 0o
0o30 => 24
# 16진수 - 0x
0x0f => 15
숫자 (float)
- 정수가 아닌 모든 실수는 float 타입
- 부동소수점
- Floating point rounding error
- 실수를 컴퓨터가 표현하는 방법 - 2진수(비트)로 숫자를 표현
- 부동소수점에서 실수 연산 과정에서 발생 가능
- 값 비교하는 과정에서 정수가 아닌 실수인 경우 주의해야 함
# 왼쪽의 계산 결과와 오른쪽의 값은 같은 값인가?
3.14 - 3.02 == 0.12
# 결과
False
# why?
3.14 - 3.02
>> 0.1200000000000
- 따라서 수를 비교할 땐 차이가 매우 작은 수보다 작은지를 확인하거나, math 모듈을 활용함
# 1. 임의의 작은 수
abs(a - b) <= 1e-10
# 2. system 상의 machine epsilon
import sys
print(abs(a - b) <= sys.float_info.epsilon)
# math 모듈 활용
import math
math.isclose(a, b)
숫자 - complex
- 실수부와 허수부로 구성된 복소수는 모두 complex 타입
- 허수부를 j로 표현함
a = 3+4j
print(a.real)
print(a.imag)
-------------
# 결과
3.0
4.0
문자열(String)
- 모든 문자는 str 타입
- 문자열은 작은 따옴표(')나 큰 따옴표(")를 활용하여 표기
- 문자열을 묶을 때 동일한 문장부호를 활용
- PEP8에서는 소스코드 내에서 하나의 문장부호를 선택하여 일관성을 유지하도록 함
- 기본적으로 작은 따옴표를 사용하기로 한다!
이스케이프 시퀀스(escape sequence)
- 문자열 내에서 특정 문자나 조작을 위해 역슬래시(\)를 활용하여 구분
| 예약문자 | 내용(의미) |
| \n | 줄 바꿈 |
| \t | 탭 |
| \r | 캐리지리턴 |
| \0 | 널(Null) |
| \\ | \ |
| \' | 작은따옴표(') |
| \" | 큰따옴표(") |
String Interpolation
- 변수의 값을 문자열의 자리표시자(placeholder)로 대체하는 방법(과정)
- % formating - 현재 버전에선 많이 사용하지 않는 방법
- str.format()
- f-string - 많이 사용하게 될 것!
- 사용 예시
# f-string 사용 예시
# 날짜 표시
import datetime
today = datetime.datetime.now()
print(today)
--------------------------------
# 결과
2021-06-24 15:01:21.704852
--------------------------------
print(f'오늘은 {today:%y}년 {today:%m}월 {today:%d}일')
--------------------------------------------------------
# 결과
'오늘은 21년 06월 24일'
--------------------------------------------------------
pi = 3.141592
print(f'원주율은 {pu:.3} 반지름이 2일 때 원의 넓이는 {pi*2*2}')
---------------------------------------------------------------
# 결과
`원주율은 3.14 반지름이 2일 때 원의 넓이는 12.566368`
참/거짓 (Boolean)
- True / False 값을 가진 타입은 bool
- 비교/논리 연산을 수행함에 있어 활용
- 다음은 모두 False로 반환
0, 0.0, (), [], {}, '', None
None
- 값이 없음을 표현하기 위한 타입인 NoneType
a = None
print(a)
---------
None
타입 변환
자료형 변환/타입 변환(Type conversion, Typecasting)
- 파이썬에서 데이터 타입은 서로 변환할 수 있음
- 암시적 타입 변환(Implicit)
- 사용자가 의도하지 않고, 파이썬 내부적으로 타입 변환 하는 경우
- 명시적 타입 변환(Explicit)
- 사용자가 특정 함수를 활용하여 의도적으로 타입 변환 하는 경우
암시적 타입 변환
- 사용자가 의도하지 않고, 파이썬 내부적으로 타입 변환하는 경우
- bool
- Numbers(int, float, complex)
- 예시
True + 3
=> 4
3 + 5.0
=> 8.0
3 + 4j + 5
=> (8+4j)
명시적 타입 변환
- int()
- str, float => int
- float()
- str, int => float
- str()
- 단, 형식에 맞는 문자열만 변환 가능하다!
- 예시
# 문자열은 암시적 타입 변환이 되지 않음
'3' + 4
>> Error!!
# 정수 형식이 아닌 경우 타입 변환 불가
int('3.5') + 5
>> ValueError
댓글