한 걸음씩 기록하며

#. 2 자료형 기본 본문

Python

#. 2 자료형 기본

Haksae 2021. 12. 20. 02:24

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