목차

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

     

     

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

     

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

     

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

     

    즉 자료형이 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

    목차

      그냥 생각나는 데로 정리를 하다 보니 정리해야 할 순서가 이상해진 것 같지만 그래도 정리를 해봐야겠다.

       

      변수는 "변하는 수 " 로서 컴퓨터 프로그래밍에서 아직 알려지지 않거나 어느 정도까지만 알려져 있는 양이나 정보에 대한 상징적인 이름이다.

       

      워와 같이 말하면 어려우니. 간단히 말하면 데이터를 담을 그릇이라고 생각하면 좋을 것 같다. 

       

      예를 들어 커피잔에는 커피를 담으니 커피잔을 변수라고 생각하면 된다.

       

      C/C++과 같은 언어에서는 변수를 선언할 때 "헝가리안 표기법"에 의하여 변수, 함수 앞에 자료형을 지정해 주어야 한다.

       

      하지만 파이썬은 신기하게도 그러지 않아도 자동으로 지정이 된다.

       

      c/c++ Python
      int number = 1; number = 1

      위와 같이 매우 단순하게 할 수 있다.

       


      변수에는 여러 가지 자료형이 있다.

       

      크게 보면 정수형(integer), 실수형(float), 복소 수형(complex)이다.

       

      자료형 의미
      정수형 ( Integer ) 정수 즉 소수값을 사용하지 않는다.
      실수형 ( Float ) 실수 즉 소수값을 표현해준다
      복소수형 ( Complex ) 복소수형 즉 허수를 사용할 수 있다.

       

      개인적으로 코딩을 하면서 정수형과 실수형은 많이 사용해 보았지만, 복소 수형은 사용해 본 기억이 없다.

       

      필자가 공부하면서 정리한 내용은 아래와 같다.

      • 변수의 의미
        • 값을 참조할 수 있도록 저장하는 메모리 공간
      • 변수명
        • 변수에 접근하고 할당 받은 값을 저장하거나 그곳에 있는 값을 읽기 위해 지정한 이름
      • 변수 선언
        • 오른쪽에 변수명을 정의하고 할당연산자를 사용해서 변수 값을 왼쪽에 대입한다.
          • Ex) [변수명] = [대입 값]
        • 저장할 공간을 할당하고 이름을 붙이는 것을 변수 선언이라고 함
        • 변수명 = 대입값
        • python은 대입값에 따라 자동으로 변수 타입 결정 ( 만약 빈 변수를 만들고 싶다면 none을 삽입한다)
      • 변수 명명 규칙
        • 첫글자는 영문 소문자로 하며, 숫자나 특수기호 제외
        • 예약어는 변수명으로 사용불가
        • 변수명내 공백불가
        • 대소문자 구분주의

       

       

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

      파이썬(반복문)_06  (0) 2021.04.29
      파이썬( 자료형 )_05  (0) 2021.04.29
      파이썬(조건문)_03  (0) 2021.04.28
      파이썬(연산자)_02  (0) 2021.04.28
      파이썬( 세미콜론 및 코드블럭 )_01  (0) 2021.04.28

      목차

        조건문은 연산등을 수행할 때 조건에 따라 실행 여부를 판단할 때 많이 사용한다.

         

         


        IF ... elif .... else

        간단히 설명해보자면

         

        IF    : 만약에

        elif  :  아니면

        else : 그 외에는

         

        이라고 해석하면 편할 것 이다.

         

        우선 구조를 보자면 실력없는 실력으로 그린 파워포인트 그림을 보자

         

         

        간단하게 조건은 저렇다 

        실선 부분은 elif가 N개라는 것을 가정하였다.

         

        위와 같이 중간에 조건문을 한번이라도 패스한다면 그 IF문은 종료하게 된다.

         

        사용 방법은 아래와 같다

         

        사용 방법 예시
        IF 조건식 : 
            연산식
        elif 조건식 :
            연산식
        else 조건식 :
            연산식

        위와 같은 모양으로 구현이 된다.

         

        중간에 있는 elif는 몇개든 만들 수 있다.

         

        만약 조건식에 몇개를 넣고 싶다면 and 혹은 or 등 을 이용하여 사용 할 수 있다.

         

        코딩하다가 다른 예시나 생기면 다시 올리겠다.

         

        다음에 보충을 할 땐 글솜씨가 늘어 더 잘 이해하도록 작성하면 좋겠다.

         

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

        파이썬( 자료형 )_05  (0) 2021.04.29
        파이썬(변수)_04  (0) 2021.04.29
        파이썬(연산자)_02  (0) 2021.04.28
        파이썬( 세미콜론 및 코드블럭 )_01  (0) 2021.04.28
        파이썬 공부시작  (0) 2021.04.28

        목차

          사칙연산자

           

          이것은 그냥 그렇구나 하고, 쓰다가 보면 자연스레 사용하게 될 것이다.

           

          연산자 내용 사용방법 수식
          + 덧셈 연산자이다.  ans = A+ B $$ans = A + B$$
          - 뺄셈 연산자이다.  ans = A - B $$ans = A - B $$
          / 나눗셈 연산자이다. ans = A / B $$ans = A / B$$
          // 나눗셈 연산자이다. '/'와 다른점은 소숫점 아래는 버린다.  ans = A // B  
          * 곱셈 연산자이다.  ans = A * B $$ans = A * B$$
          ** 거듭제곱 연산자이다.  ans = A ** B   $$ans = A ^B$$
          % 나머지 연산자이다.   ans = A % B  

          빈칸은 필자 기억으론 수식이 따로 없기에 패스한다.

           

          논리 연산자

          연산자 내용 사용방법 c / java연산자
          and A 와 B 모두 True 여야 결과값이 True가됨 A>B And A > C &&
          or A 혹은 B 하나라도 True 면 결과값이 True가됨 A>B And A > C ||
          not 반댓 값으로 만들어줌 not A > B !

           

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

          파이썬(변수)_04  (0) 2021.04.29
          파이썬(조건문)_03  (0) 2021.04.28
          파이썬( 세미콜론 및 코드블럭 )_01  (0) 2021.04.28
          파이썬 공부시작  (0) 2021.04.28
          쥬피터 기본 명령어들  (0) 2021.04.27

          목차

            필자는 C++를 먼저 공부를 하고 파이썬을 공부하고 있다. 그런데 파이썬은 인터프리터 언어여서 그런지 뭔가 조금 달랐다.

             

            개인적으로 생각한 가장 다른 것은 세미콜론과 코드 블록을 만드는 방법이다. 

             

            물론 변수 선언도 충격이었지만, 변수 선언은 나중에 변수를 정리하면서 적어보겠다.


            1. 세미콜론 ( semicolon ) ;

            더보기

            지금까지 해본 언어들은 JAVA, C++ 등 의 언어들은 모두 다 코드의 끝에 항상 세미콜론 (;)을 붙여주었다.

            하지만 파이썬은 신기하게 세미콜론이 필요가 없다. 

             

            그렇지만 필요 없다는것이지 쓰면 안 된다는 말은 아니다.

             

             위와같이 세미콜론을 넣어도 안 넣어도 된다는 게 재밌었다.

             

            2. 블록구분

            더보기

            위에 말했듯이 필자가 공부했었던 언어들은 모두 "{}"를 이용하여 블록을 묶고,

            들여 쓰기는 가독성을 위해 사용했었다.

             

            하지만 파이썬은 그렇게 블록 구분을 하지 않고 들여 쓰기로 구분한다.

             

            위와 같이 def( 함수 생성 )  을하는데 {}를 사용하지 않는다는 게. 참신했다. 

            마치 파이썬은 개발자에게 강제로 가독성을 강요하는 것 같았다.

             

            3. 주석 ( # )

            더보기

            위에 언급하지 않았지만 간단히 적어보면 주석은 '#'을 적는다면 그 뒤의 값들은 모두 주석처리가 된다.

             

            주석 생성할 때 간단히 팁을 드리자면 Ctrl + / 를 이용하면 간단하게 "한줄 주석" 처리할 수 있다.

             

             

             

             

             


            수업 끝나고 저녁식사를 후 다음 부분을 정리할 수 있으면 정리를 해서 다시 올려봐야겠다.

             

             

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

            파이썬(변수)_04  (0) 2021.04.29
            파이썬(조건문)_03  (0) 2021.04.28
            파이썬(연산자)_02  (0) 2021.04.28
            파이썬 공부시작  (0) 2021.04.28
            쥬피터 기본 명령어들  (0) 2021.04.27

            혁신성장 데이터 분석가 교육을 받으면서 파이썬 공부를 시작했다. 

             

            기존에 컴퓨터 공부를 하였지만 아쉽게 파이썬은 처음 해보는 것 이어서 정리할 겸 겸사겸사 블로그에 끄적여봐야겠다.

             

            끄적이면서 글을 잘 쓰게 됬으면 좋겠다. 

             

            교육을 받으면서 1주에 1권씩 책을 끝낸다는데 힘들 것 같다.. 그래도 열심히 해봐야겠다.

             

             

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

            파이썬(변수)_04  (0) 2021.04.29
            파이썬(조건문)_03  (0) 2021.04.28
            파이썬(연산자)_02  (0) 2021.04.28
            파이썬( 세미콜론 및 코드블럭 )_01  (0) 2021.04.28
            쥬피터 기본 명령어들  (0) 2021.04.27

            + Recent posts