한 걸음씩 기록하며
#. 2 자료형 기본 본문
1. type
- 파이썬의 모든 값에는 데이터 유형이 있다.
- 파이썬 프로그래밍에는 모든 것이 객체이기 때문에, 실제로 데이터 유형은 클래스이고 변수는 이러한 클래스의 인스턴스(객체)이다.
- Integer: 정수
- Float: 소수점 숫자
- Complex Numbers: 복소수(실수, 허수) i 대신 j를 사용한다.
- String: 문자열
- Boolean: True or False. 조건문에 주로 사용된다.
- None: null value 또는 no value를 표현할 때 쓰인다.
- 데이터 저장 방법에 따른 자료형 분류
- Direct형 : 직접 데이터를 표현하는 자료형(int, float, complex)
- Sequence형 : 다른 데이터를 포함하는 자료형. 순서가 있다. (list, str, tuple, bytes, bytearray, range)
- Mapping형: 다른 데이터를 포함하는 자료형. 순서가 없다 (dict)
- Set 형: 집합형. 중복을 허용하지 않고, 순서가 없다.
- 변경 가능성에 따른 자료형 분류
- 변경 가능형(Mutable) -> list, dict, set, bytearray
- 변경 불가능형(Immutable) -> int, float, complex, str, tuple, frozenset
- 데이터 저장 개수에 다른 자료형 분류
- 리터럴 형(한가지 객체만 저장한다) -> str, int, float, complex
- 저장형(container) 여러가지 저장 -> bytes, bytearray, list, tuple, dict, set, frozenset
1) Numbers (수치형)
(1) Integer : 정수
- 모든 정수는 int로 표현된다.
- 8진수: 0o, 2진수: 0b, 16진수: 0x
- Overflow (일반적) vs Arbitrary-precision arithmetic (Python)
- 일반적으로, 데이터 타입 별로 사용할 수 있는 메모리 크기가 제한되어 있다. 표현할 수 있는 수의 범위가 넘어가면 메모리의 넘친(overflow) 현상으로 이상한 값이 출력된다.
- 파이썬은 아주 큰 정수를 표현할 때, 메모리의 변화한다. 가용 메모리를 모두 수 표현에 끌어다 쓸 수 있어 유동적인 운용이 가능하다.
(2) float : 부동소수점, 실수
- 실수는 부동소수점으로 표현되며, 항상 같은 값으로 일치되지 않는다.
- 숫자를 표현하는 과정에서 생기는 오류는 대부분 중요하지 않으나, 값 비교 과정에서는 문제가 발생할 수 있다.
- 실수의 경우, 덧셈은 괜찮으나 뺄셈 처리 시에는 오류가 있을 수 있다.
- round() 를 통해 반올림하여 실수를 정리 할 수 있다.
(3) complex : 복소수
- 복소수는 허수부를 j로 표현한다.
a = 3 + 4j
print(a.imag) #허수부출력
print(a.real) #실수부 출력
2) String : 문자형
- 문자열은 '' 나 ""을 활용하여 표현 가능하다.
- 하나의 문자열을 묶을 때 동일한 문장부호를 활용해야 한다.( PEP-8에서는 하나의 문장부호를 선택하여 유지하는 것이 원칙)
- 사용자에게 받은 입력은 기본적으로 str 이다.
- 여러 줄에 걸쳐있는 문장은 """ """ 을 사용 하여 표현 합니다.
- 이스케이프 문자열
- 특수문자 또는 조작을 하기 위하여 \ 을 활용하는 문자열
- 예약문자내용(의미)줄바꿈 탭 캐리지리턴\0널(Null)\\\’단일인용부호(’)"이중인용부호(")
- 문자열 뒤에 end='escape string'을 쓰면 출력 결과를 조정할 수 있다.
3) Boolean
- True와 False로 이뤄진 bool 타입
- bool(value) 하면 True와 False 가 출력된다.
- False의 경우: [], 0, {}, 0.0, ’’, (), None
- True의 경우: False 경우 제외 전부. 어떤 값이나 type 이든 비어있지 않고 무언가가 존재 하면 True이다. 예로, [False], [0], ' ' 등 도 전부 True이다.
2. Type Conversion (기초 형 변환)
- 암시적 형변환
- 사용자가 의도하지 않았지만, 파이썬 내부에서 자동으로 형변환 하는 경우: bool, numbers(int, float, complex)
- bool은 true는 1로, false는 0으로 자동 변환
- Numbers는 연산 시 1) complex, 2) float, 3) int 우선순위 순으로 변환된다.
- 명시적 형변환
- 암시적 형변환을 제외하고는 모두 명시적으로 형 변환
- int(): string, float을 int로 변환
- float(): string, int 를 float으로 변환
- str(): int, float, list, tuple, dictionary를 문자열로 변환
- string -> intger : 형식에 맞는 숫자만 가능
- integer -> string : 모두 가능
- 2가지 형 변환을 한 번에 할 수 없음. ex) int('3.5')
- float을 int로 형변환하면 내림 숫자가 나옴
3. Sequence 자료형
- 시퀀스(sequence): 데이터의 순서대로 나열된 형식 (정렬되었다는 것은 아님)
- list, tuple, range, string, binary
1) list (리스트): [value1, value2, value3]
- 리스트는 대괄호 []로 만들 수 있다
- 값에 대한 접근: list[i]
2) tuple(튜플): (value1, value2)
- 리스트와 유사, ()로 묶어서 표현
- 수정불가능(immutable)하고, 읽을 수 밖에 없음
- 직접 사용 보다는 파이썬 내부에서 사용
3) range: 숫자의 시퀀스
- range(n): 0<= x < n
- range(n, m) : n <= x < m
- range(n, m, s): n <= x < m (스텝: s)
- range의 기본형은 tuple
4. non-sequence type
- set과 dictionary는 기본적으로 순서가 없다
1) set: {value 1, value 2, value 3}
- 수학의 집합과 동일하게 처리
- 순서가 없고, 중복된 값이 없다
- set을 활용하면 list의 중복된 값을 손쉽게 제거할 수 있다
- 차집합은 - 또는 difference로, 합집합은 | 또는 union, 교집합은 & or intersection으로 표현
2) dictionary: {key1: value1, key2: value2, key3: value3, …}
- key와 value가 쌍으로 이루어져있다
- literal {} 과 생성자 함수 dict()로 만들 수 있다.
- key는 immutable한 모든 것이 가능 (string, integer, float, boolean, tuple, range)
- value는 list, dictionary를 포함한 모든 것이 가능하다.
- 중복된 key는 존재 할 수가 없다.
'Python' 카테고리의 다른 글
#.6 Function & Lambda (0) | 2021.12.20 |
---|---|
#.5 Control of Flow (0) | 2021.12.20 |
#.4 연산자 (0) | 2021.12.20 |
#.3 String Formatting (0) | 2021.12.20 |
#.1 Identifier, Variable, Constant, Literal (0) | 2021.12.20 |
Comments