Python 개요

nahye·2021년 5월 3일
0

파이썬 - 3.7n version으로 사용

전체 일정


1-4주차 파이썬
5-8주차 머신러닝과 딥러닝
머신러닝 배우고 초미니 프로젝트
데이터 수집, 전처리, 알고리즘 통해 구현 결과물 작업
딥러닝 배우고 초미니 프로젝트


복습 열심히 하기
1교시 ~ 3교시 40분 수업 20분 휴식
마지막 타임은 10분 쉬고 10분 일찍 끝냄


순수하게 알고리즘 공부
학습한 필요한 형태로 알고리즘 설계
세부적인 내용은 수학적인 내용으로 구성되어 있음
(미분, 행렬 등)
구체적인 알고리즘을 설계하기 위해선 수학적 지식이 필요함
전반적인 data를 가공해서 ml/dl할 예정
수학적으로 증명하는 수업은 아님
어떤 원리로 해당 알고리즘이 구현되는지는 설명할 것!
이 data가 어떤 알고리즘을 쓰는 지 알게 됨




Python의 자료형과 함수 파트가 중요함
어떤 식으로 정보를 주고 받는지 이해해야하기 때문
data의 특징과 의미를 정확히 이해 필요


  • 파이썬의 특징

    • 객체지향 언어이다.
      python은 모든 data를 객체로 만들어 다룸, 객체를 이용한 프로그래밍 언어
    • 문법이 쉬워 누구나 쉽게 배울 수 있다.
    • 무료로 배포가 되지만 기능은 강력하다.
    • 코드가 간결하다.
    • 가독성이 좋다.
      들여쓰기 통해 특정문장이 다른 문장에 포험된다고 구분해줌
    • 풍부한 라이브러리를 제공한다.
    • 이식성이 좋다.

  • 파이썬 구조

    • 파이썬은 모든 데이터를 객체로 표현하여 함수, 객체, 모듈, 패키지로 구성

    • 함수(Function)

      • 여러 문장들이 하나의 기능을 구현하도록 구성
    • 객체 = 속성 + 메소드

      • 클래스(class)를 이용해서 만들어지며 속성과 메소드로 구성

      • 클래스(class) = 속성 + 메소드

        • 객체들의 공통된 특성과 기능으로 만들어진다.
      • 속성

        • 객체의 상태정보를 저장
      • 메소드

        • 객체의 속성을 다루기 위한 행위를 정의한 것
        • 클래스 내부에 정의한 함수를 메소드라 부른다.
        • 정보를 활용해 계산 등 이용
      • 모듈

        • 함수나 클래스와 같은 정의를 저장하고 있는 파일을 말한다.
      • 패키지

        • 모듈을 체계적으로 관리하기 위해 만들어진 디렉토리(=폴더)를 말한다.
        • 여러 개의 계층으로 만들어질 수 있으며 하나 이상의 모듈을 가진다.

클래스는 틀 ex) 붕어빵 틀
객체는 틀에 만들어진 것 ex) 붕어빵

설계 도면에 지어진 집은 객체
설계 도면은 클래스

클래스는 구조를 정해놓은 것
이 정의된 클래스를 기반으로 해 객체가 만들어짐


식별자와 키워드, 변수


  • 식별자

    • 프로그래밍 언어에서 변수, 함수, 모듈, 배열, 객체 등을 식별하기 위하여 붙이는 이름

    • 식별자를 만드는 규칙

      • 영문자 A~Z, a~z 또는 밑줄(_)로 시작한다.
      • 숫자는 사용가능하지만 첫 글자로 사용할 순 없다.
      • @,$,% 등 문장부호(punctuation)나 특수문자는 사용하지 않는다.
      • 대소문자를 구분하며 길이에는 제한이 없다.
      • 클래스이름은 첫 글자를 대문자를 사용하며 객체이름은 첫 글자를 소문자로 사용한다.
      • ex) mbc(o), m123(o), _m123(o), Abc(o), a bc(x), 123m(x), m&n(x)
  • 키워드

    • 파이썬에서 미리 사용하기 위해 예약해둔 단어로 식별자로는 사용 불가능


변수


  • 변수

    • 데이터를 저장하기 위한 기억장소를 말하며 파이썬에서 사용하는 변수는 객체를 의미한다.

    • 파이썬에서는 변수 선언문이 별도로 존재하지 않으며 변수에 값을 대입하는 순간 변수가 만들어지며 변수의 자료형이 결정된다.
      ex) int a 같은 선언문이 파이썬에는 없음

    • a = 10 or lst = [1,2,3] or dct = {1:"mbc", 2:"kbc"}

      [1,2,3] -> 리스트파일의 객체

    • 객체는 주기억장치에 저장이 됨
      주기억장치(RAM으로 구성) = 메모리


      주기억장치는 몇 개의 명령어(heap, stack, code)로 나누어 저장하게 됨, 명령어 안에 객체가 저장됨, byte단위로 고유한 주소가 생성됨(=절대주소, 객체주소)

      100이란 주소가 변수에 저장이 됨
      객체는 heap에 저장, 변수는 stack에 저장
      a=10이면 10이란 객체를 만들어 a란 이름으로 객체에 접근하게 된다.
      주기억장치 공간은 하나의 공간이지만 몇개의 공간으로 나뉘어서 관리하게 해줌


      a는 변수지만 객체에 도달하기 때문에 a=10이다.

  • id()

    • 파이썬에서는 객체가 만들어지면 고유한 식별자가 생성되며 id()함수로 확인할 수 있다.

    • ex) id(a) => a변수(객체)의 고유한 식별자 출력


      둘은 동일한 객체임을 알 수 있다.

  • type()

    • 변수(객체나) 상수의 타입을 알려준다.
    • ex) type(10) => <class 'int'>, type([1,2,3]) => <class 'list'>


숫자 자료형


  • 숫자 자료형

    • 숫자로 이루어진 자료형으로 정수형과 실수형이 있다.

    • 정수형(int)

      • 정수(Integer)로 구성된 자료형
      • 10진수, 8진수, 16진수로 표현
      • ex) 10, 100, 123, 0o123(8진수), 0×123(16진수) 등
    • 실수형(float)

      • 소수점이 포함된 자료형
        • ex) 1.2, 123.456, 1.234E10, 1.234E-10 등
  • byte

    • 바이트로 취급하고 싶은 문자열 앞에 소문자 b를 작성하여 byte타입임을 표시한다.
    • Ex) b'1234', b'abcdef'
      '1234' 는 문자열(str) - ''가 있으니까

자료형 분류


  • 순차(sequence) 자료형과 비순차(non-sequence) 자료형
    • 순차 자료형

      • 문자열, 수치 등을 관리하기 위한 자료형으로 순서 개념이 존재하는 자료형
      • 종류 : String(str), list.Tuple
      • 배열형식구조를 띠고 있기 때문에 인덱스를 이용하여 저장된 데이터에 접근한다.
      • 인덱스 값은 0부터 시작하며 저장된 자료참조 및 슬라이싱을 할 수 있다.
      • 자료를 연결(+)하거나 반복()하기 위해 +, 연산자를 사용한다.
    • 비순차(non-squence) 자료형

      • 문자열, 수치 등을 관리하기 위한 자료형으로 순서 개념이 존재하지 않는 자료형
      • 종류 : dict, set

  • 가변 자료형과 불변 자료형

    • 가변 자료형 - 값의 변경이 가능한 자료형
      • 종류 : list, dict, set
    • 불변 자료형 - 값의 변경이 불가능한 자료형
      • 종류 : string, tuple


문자열 자료형


  • 문자열(String, str)

    • 문자, 단어 등으로 구성된 문자들의 집합을 의미
    • 하나이상의 문자나 숫자를 작은 따옴표(')나 큰 따옴표(")로 묶어서 사용
      - Ex) "mbc", "123", "one two three", 'kbs' 등
    • 여러 줄에 걸쳐서 문자열을 나타낼 때에는 작은 따옴표나 큰따옴표를 연속을로 기술해서 표현
      - Ex) """MBC""", ""MBC"' 등
    • 문자열 안에 작은 따옴표나 큰 따옴표를 포함 시키고 싶을 때
      - Ex) "k'im", 'k" im', "k\im", 'k \"im ' 등



  • 문자열 인덱싱

  • 문자열 출력(print())과 포맷팅(formating)

    • print()

      • 문자열을 출력하기 위한 함수

      • end라는 인수를 지정하지 않으면 자동으로 \n이 설정된다.


        ":" -> 줄바뀜 안 됨
        \n 줄바뀜 문자 사용 -> 줄바뀜 됨
        키워드 인자(=파라미터, 매개변수)

        동그라미 부분만 외우기

  • 포맷 문자

    • %

    • %d

    • %f

  • format() 메서드

    • 문자열 형식화에 사용한다.



    15는 전체자리수, ,는 3자리마다 출력

profile
Slow and steady wins the race

0개의 댓글