목차

    자료형이란 무엇인가? 간단하게 말하면 변수의 종류를 정해주는 것이라고 생각하시면 편합니다.

     

     

    이전에 변수를 그릇이라고 표현을 했던 것을 다시 가져와 보겠습니다.

     

    "커피잔"은 "커피"를 담는 잔입니다.  그러면 이것의 자료형은 "커피"라고 생각하시면 편합니다.

     

    "맥주"를 마실땐 "맥주잔"에 따라 마시는 것처럼 그릇에 담을 것에 대한 규칙을 정해주는 것입니다.

     

    즉 자료형이 int인 변수가 있다면 그 변수에는 int 값을 넣어주어야 합니다. (그렇지 않으면 에러가 발생할 수 있습니다 )

     


    위에서 간단하게 자료형이 무엇인가를 적어보았습니다.

     

    파이썬에서 사용하는 자료형은 다양한 것으로 알고 있습니다. 대표적으로 몇 가지가 있습니다.

     

    • 숫자 (디지털)
    • 문자열 (문자열)
    • 목록 (리스트)
    • 튜플 (튜플)
    • 사전 (사전)

    위와 같은 것들이 대표적입니다.

     

    숫자 ( 디지털 )

    더보기

    숫자 자료형은 일반적으로 수를 계산할 때 많이 사용합니다. 

     

    정수형

    위와 같이 10,2,8,16 진수로 입력을 받을 수 있다.

    위와 같이 선언을 하면 int형으로 선언이 된다.

     

    실수형

    위와 같이 float의 형식으로 삽입하면 float으로 자동으로 형지정이 된다.

     

     

    논리형

    논리형은 어디다 넣을까 하다 그냥 여기에 넣는다.

    논리형은 True / False값 2개만 가질 수 있는 자료형이다.

     

    문자열 (문자열)

    더보기

    변수에 문자열을 담을 때 사용한다.

    문자열은 str(string)이라 표현한다.


    시퀀스 자료형( Sequance type)

    시퀀스 자료형들은 자려 형들의 묶음이라고 생각하면 된다.

     

    List (리스트)

    더보기

    리스트는 변수들의 묶음이다. 아래 설명하겠지만, 튜플과 유사하다.

    • 리스트는 대괄호로 표현
      • 생성 : []
      • 조회 : 리스트객체[인덱스슬라이싱]
    • 대괄호 내에 ,(콤마)를 사용하여 항목을 구분
    • 내부 요소 변경 가능 ( 튜플과 가장 큰 차이점 ) 

    Tuple (튜플)

    더보기
    • 리스트는 대괄호로 표현
      • 생성 : ()
      • 조회 : 리스트객체(인덱스슬라이싱)
    • 대괄호 내에 ,(콤마)를 사용하여 항목을 구분
    • 내부 요소 변경 불가능 ( 리스트와 가장 큰 차이점 ) 

    Set ( 셋 )

     

    더보기

    5.1.1  정의

    • 순서 및 중복이 없는 Sequence Type 변수다.

    5.1.2  생성

    • {} or set = { val1 , val2 , val3 }
      • Set은 다른 Sequence Type과 다르게 Set안에 Set을 삽입할 수 없다.

    5.1.3  조회

    -특정 요소(객체)만 출력할 수 없다. - [ 값 ] in [ SET ] : 값 유무판단을 한다. ( 있다면 True , 없다면 False 를 반환 ) - [ 값 ] not in [ SET ] : 값 유무판단을 한다. ( 있다면 False , 없다면 True 를 반환 )

    5.1.4  메소드

    • frozenset( iterable object )
      • frozenset obj = frozenset( iterable object ) : 변경 불가능한 Set
      • 요소를 추가하거나 삭제하는 연산 Method를 사용할 수 없다.
      • 기본 set과 다르게 frozenset은 frozenset 안에 frozenset을 넣을 수 있다.
    • 집합연산
      • 합집합 ( Union )
        • [Set1] | [Set2]
        • set.union( [Set] , [Set2] )
          • [Set1] 과 [Set2]의 합집합을 반환한다 (중복은 없다)
        • 연산 후 할당하기.
          • [Set1] |= [Set2]
          • [Set1].update( [Set2] )
            • [ Set1 ]에 연산된 값이 삽입된다.
      • 교집합 ( Intersection )
        • [Set1] & [Set2]
        • set.intersection( [Set] , [Set2] )
          • [Set1] 과 [Set2]의 교집합을 반환한다 (중복은 없다)
        • 연산 후 할당하기.
          • [Set1] &= [Set2]
          • [Set1].intersection_update( [Set2] )
            • [ Set1 ]에 연산된 값이 삽입된다.
      • 차집합 ( Difference )
        • [Set1] - [Set2]
        • set.difference( [Set] , [Set2] )
          • [Set1] 과 [Set2]의 차집합을 반환한다 (기준은 [ Set1 ] 중복은 없다)
        • 연산 후 할당하기.
          • [Set1] -= [Set2]
          • [Set1].difference_update( [Set2] )
            • [ Set1 ]에 연산된 값이 삽입된다.
      • 대칭차집합 ( Symmertric difference )
        • [Set1] ^ [Set2]
        • set.symmetric_difference( [Set] , [Set2] )
          • [Set1] 과 [Set2]의 차집합을 반환한다 (기준은 [ Set1 ] 중복은 없다)
        • 연산 후 할당하기.
          • [Set1] ^= [Set2]
          • [Set1].symmetric_difference_update( [Set2] )
            • [ Set1 ]에 연산된 값이 삽입된다.
      • 포함관계 확인하기.
        • [Set1] <= [Set2]
        • [Set1].issubset( [Set2] )
          • [Set1] 이 [Set2]에 포함된다면 True 그렇지 않다면 False를 반환한다.
        • [Set1] >= [Set2]
        • [Set1].issuperset( [Set2] )
          • [Set2] 이 [Set1]에 포함된다면 True 그렇지 않다면 False를 반환한다.
        • [Set1] < [Set2]
          • [set1] 이 [Set2]에 포함되면서, [Set2]가 더 크다면 True 그렇지 않으면 Fasle를 반환한다.
        • [Set1] > [Set2]
          • [set2] 이 [Set1]에 포함되면서, [Set1]가 더 크다면 True 그렇지 않으면 Fasle를 반환한다.
        • [Set1] == [Set2]
          • [set1] 과 [Set2]이 동일한 Set이면 True 그렇지 않다면 False를 반환한다.
          • Set은 순서가 없으니, 안에 있는 요소만 비교한다.
        • [Set1] != [Set2]
          • [set1] 과 [Set2]이 동일한 Set이면 False 그렇지 않다면 True를 반환한다.
          • Set은 순서가 없으니, 안에 있는 요소만 비교한다.
        • [Set1].isdisjoint( [Set2] )
          • [set1] 과 [Set2]에 겹치는 요소가 없다면 True를 반환하고, 그렇지 않으면 False를 반환한다.
          • Set은 순서가 없으니, 안에 있는 요소만 비교한다.
      • 삽입
        • [Set1].add( [Obj] )
          • [Set1]에 Obj를 삽입한다.
      • 삭제
        • [Set1].remove( [Obj] )
          • [Set1]에 있는 요소중 Obj를 찾아 삭제한다.
            • 만약 Obj가 없으면 Error가 발생함.
        • [Set1].discard( [Obj] )
          • [Set1]에 있는 요소중 Obj를 찾아 삭제한다.
            • 만약 Obj가 없더라도 Error가 발생하지 않음.
        • [Set1].pop()
          • [Set1]에 있는 임의의 요소를 반환 후 삭제함.
            • 만약 Set1이 비어있다면, Error가 발생함.
        • [Set1].clear()
          • [Set1]에 있는 모든 요소를 삭제한다.
      • 복제
        • [Set1] = [Set2]
          • 얕은 복사 ( Shallow Copy ) 가된다.
            • Set1이 변경되면, Set2에 있는 값도 변경이된다.
        • [Set2] = [Set1].copy()
          • 깊은 복사 ( Deep Copy ) 가된다.
            • Set1이 변경되더라도, Set2는 변경되지 않는다.
      • 표현식 사용
        • { [식]in [변수] in [ Set ] if [조건식]
          • 조건에 맞는 값들을 [식]에 삽입한다.
          • if [ 조건식 ]은 생략해도 된다 ( 조건을 넣고 싶은경우에 사용.

    Dictionary ( 사전 )

    더보기
    • 딕셔너리는 중괄호로 표현 {}
    • key:value 쌍 형식
    • dictionary를 생성하는 방법
      • dict()
      • dict(k1='a',k2='b')
      • {'k1':'a','k2':'b'}
    • 조회시 key값으로 조회
      • dict[key]
    • 요소 추가 혹은 변경시
      • 삽입
        • dict.setdefault( [ key ] , [ value ] )
          • value를 생략하면 None 값이 들어간다
      • 수정 & 삽입
        • dict[key] = value : key 값이 있으면 value 변경, 없다면 추가
        • dict.update( [key] = [value] , [key] = [value] ...) : key 값이 있으면 value 변경, 없다면 추가
          • 나열하여 여러개 수정 및 삽입할 수 있다.
      • 삭제
        • pop( [ key ] , [기본값] ) : key값을 찾아 반환 후 삭제한다. 없다면 [기본값] 을 반환한다
        • del dict[ [ key ] ] dict의 [ key ]값을 찾아 삭제한다.
        • popitem() 3.6이상 기준으로 마지막 값을 Tuple로 반환 후 삭제한다.
        • dict.clear() dict의 모든 값 삭제하기.
      • 조회
        • dict.get( [ key ] , [ 기본값 ] : key의 value를 조회한다. 실패시 [기본값]을 반환한다
        • dict.items() : (key , value) 형식으로 모든 값을 조회한다.
        • dict.key() : key 값을 조회한다.
        • dict.value() : value 값을 조회한다.
      • 리스트 혹은 튜플로 딕셔너리 생성
        • dict.fromkeys(key,value) : value가 없다면 None값이 삽입되고, 있다면 key : value쌍으로 구현됨.
      • 표현식 사용하여 구현
        • [ dict ]= {key : value for key ,value in [ dictionary ]} [ dict ]에 [ dictionary (꼭 dictionay가 아니여도 됨. ) ]에 있는 값들을 key값과 value을 받아 삽입한다.
        • [ dict ]= {key : value for key ,value in [ dictionary ] if 조건식 } : 조건식에서 True 인 것만 삽입한다.
      • 딕셔너리 안에 딕셔너리
        • [ dict ]= {key1 : { key : value } , key2 : { key : value }} 다른 2차원 배열처럼 삽입하면 된다. (개인적인 생각은 Json형식과 유사하다)
      • 할당 및 복사
        • x = y.copy() : y를 복제해서 x에 넣는다
          • x = y와 같이 넣을 수 있지만, 그렇게 하면 주소값이 같기 때문에 같은 딕셔너리가 된다.
        • x = y.deepcopy() : 다중 딕셔러니는 deepcopy를 깊은 복사가 된다. deepcopy를 사용하지 않으면 x가 변형되면 y도 변형됨 )

     


     

    형 변환 및 자료형 확인

     

    더보기

    형변환 : 자료형 ( 변수 )와 같은 식으로 하면 된다.

    자료형 확인 : type ( 변수 ) 이와 같이 구현하면 된다.

     

    '프로그래밍 및 IT > 파이썬 ( Python )' 카테고리의 다른 글

    파이썬(문자열)_07  (0) 2021.04.30
    파이썬(반복문)_06  (0) 2021.04.29
    파이썬(변수)_04  (0) 2021.04.29
    파이썬(조건문)_03  (0) 2021.04.28
    파이썬(연산자)_02  (0) 2021.04.28

    + Recent posts