파이썬 자료형

(2021-10-27)

파이썬 자료구조, 자료구조 , 자료형 , 타입 , Type , 타입 힌트, 슬라이싱


1. 파이썬 제공 자료형기본 자료형 : int(정수형), float(실수형), complex(복소수형), bool(논리값형)
  ㅇ 군집 자료형 : str(문자열), list(리스트), tuple(튜플), set(집합), dict(사전)
  ㅇ 기타 자료형 : bytearray, bytes, frozenset
     - ByteArray : 저수준 바이트 처리용 

  ※ 자료형 확인 및 검사 함수 
     - type(대상)
        . 例) type(123) => 'int', type('Hello') => 'str', 
              type([]) => 'list', type(()) => 'tuple' 등
     - isinstance(대상,자료형)
        . 例) isinstance(4.2,int) => false, isinstance(4.2,float) => true


2. 파이썬기본 자료형숫자형 : int(정수형), float(실수형), complex(복소수형)              ☞ 파이썬 숫자형 참조

  ㅇ 논리형 : bool (값 : True/False)
     - False : 다음 모든 경우에 취해지는, 사전 정의된 내장 상수 
        . 거짓 값(False), 숫자 0 값, None 값,
          빈 컬렉션(빈 문자열 '', 빈 리스트 [], 빈 튜플(), 빈 딕셔너리{}) 
     - True : 위 False 값 이외에는 모두 참 값(True)이라는, 사전 정의된 내장 상수

     - [참고] 
        . 적용 가능 연산자 : 비교연산자(==,!=,<,>,<=,>=), 논리연산자(and,or,not)
        . 객체 비교 : 값 비교가 아닌, 객체 비교에는, is 및 is not 을 사용
     - 例) 
        . true_value = (0 < 100) # True로 판정 할당
        . false_value = (0 > 100) # False로 판정 할당

  ㅇ NoneType 형 : 내장 상수인 None 값 하나 만 유일하게 존재
     - None 값은, 값의 부재를 나타낼 때에 사용됨
       . 例) 기본 인자가 함수에 전달되지 않을 때 등
     - None 값의 논리판단은 False 임 


3. 파이썬 자료형의 특징별 구분

  ㅇ 변경 가능 : 리스트, 사전
  ㅇ 변경 불가능 : 숫자형, 문자열, 튜플, (집합의 원소 값, 사전의 키)
     - 따라서, 변경 가능한 리스트를 (집합의 원소 값, 사전의 키)로 사용 못함 
  ㅇ 순서 있음 (시퀸스 타입) : 리스트(변경 가능), 문자열(변경 불가), 튜플(변경 불가), range
  ㅇ 순서 없음 (비 시퀸스 타입) : 사전, 집합
  ㅇ 순서 없고, 키로 접근 : 사전
  ㅇ 순서 없고, 중복 불가 : 집합데이터 컬렉션(모음)을 다룰 수 있음 : 문자열, 리스트, 튜플, 사전, 집합매핑 가능 (매핑 타입) : 사전
     - 각 항목 마다 값을 가리키는 키를 갖음
  ㅇ 소속성 여부 : 집합 (set : 변경 가능, frozenset : 변경 불가)

  ㅇ flat sequence : (str, bytes, bytearray, memoryview, array.array)
     - 그 자신 메모리 공간에 주로 동일 타입의 데이터들을 순서대로 저장시켜 둠 
  ㅇ container sequence : (list, tuple, collections.deque)
     - 다른 종류의 타입을 갖는 실제 데이터가 담긴 객체에 대한 참조
  ㅇ Iterable 객체 타입 : list, dictionary, set, string, tuple, bytes 


4. 파이썬자료구조 : (컬렉션 형태의 자료형)파이썬은, 별도 라이브러리 도움 없이도, 데이터 컬렉션(모음)을 다룰 수 있는,
     - 다양한 자체 내장 자료구조를 제공 함

  ㅇ 시퀸스(Sequence) 형태 : 순서가 중요함
     * 특징
        . 순서 있음
        . 인덱싱 가능 : [0],[1],... (인덱스 위치로 개별 원소 식별,참조 가능)
        . 슬라이싱 가능 : [ : ] (시작,끝을 정하여 범위 참조)
           .. [형식]  seqObj[start : end : step]  
           .. (단, start 포함 됨, end 포함 안함)
           .. (seqObj[::1] : 기본 동일, seqObj[::-1] : 뒤집음, seqObj[::2] : 2칸씩 이동)
           .. [순서]  (0,1,2 ... , -2,-1)
           .. [반환]  새로운 객체를 생성하여 반환
           .. [특징]  for문,while문 등에 비해 연산이 대단히 빠름

     - 문자열 (String)
        . 3.x 부터, 기본이 유니코드 임
           .. (str) : 유니 코드
           .. (bytes) : raw unsigned 8-bit (원시 이진 데이터, 또는, 1 바이트 고정 문자)
           .. (bytearray) : bytes와 같으나, 개별 바이트별로 변경 가능 (bytes는 바이트별 변경 불가)

     - 리스트 (List)                                              ☞ 파이썬 리스트 참조
        . 例) l = ['red','green','blue']
        . 순서가 있는 값의 나열이며, 읽기 쓰기 모두 가능

     - 튜플 (Tuple)
        . 例) t = (1,2,3)
        . 리스트와 유사하나, 읽기 전용이며, 속도 빠름 
        . 개별 요소 변경이 불가능 (Immutable)
           .. 요소 추가,제거, 튜플 확장,뒤집기,정렬,슬라이싱 등이 안됨

  ㅇ 비 시퀸스(Non Sequence) 형태 : 순서가 중요하지 않음

     - 사전 (Dictionary)
        . 例) d = { 'a' : 1, 'b' = 2, 'c' = 5 }
        . 리스트,튜플,집합과 달리, 반드시 키를 사용하여 원소들에 접근함

     - 집합 (Set)
        . 例) s = {1,2,3}  또는  s = set([1,2,3])
        . 순서가 없으나, 중복을 허용 않는 값들의 모음


5. 정적 타입 선언 방법 (타입 힌트, Type Hint)

  ㅇ [형식]  변수명 : 타입
     - 例) my_variable: str = "나의 변수문자열 타입의 값"



Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"