1 차시 Getting Start Python



  • Category : Python
  • Tag : Python


01 Getting Start Python

1. Python 언어의 탄생

1) Python 언어의 역사

Python의 역사

* 1991년 네덜란드인 Guido van Rossum이 "Monty Python's Flying Circus"라는 TV프로그램 이름을 따서 만들어진 `고급 프로그래밍 언어`
* 1980년대 말 고안
* 1989년 12월부터 구현 시작

Python 언어

  • 동적 타이핑(Dynamically Typed)

    객체 지향과 실행 시간에 자료 검사

  • 인터프리터

    독립적 플랫폼이면서 소스코드를 중간 언어로 변환 후 바로 실행

  • 오픈소스 소프트웨어(Open Source Software, OSS)

    Python software재단이 관리하는 개방형 공동체 기반 개발 모델

Python 버전

  • 파이썬 2.0
    • 2000년 10월 16일에 배포된 Garbage Collector에 탑재를 하고 유니코드를 지원한 오픈소스
    • 2020년 1월 1일 Python 2버전 계열의 지원이 모두 종료됨
  • 파이썬 3
    • 2008년 출시
    • 내장 자료형의 내부적인 변화, 표준 라이브러리 재배치
    • 2015년부터 파이썬 3.5.1버전, 이후로 업데이트되어 제공

Python Interpreter의 종류

  • Python
    • C언어 구현
    • cPython(오리지널)표기
    • cPython에서 시스템을 없앰: Stackless Python
  • IronPython
    • C#으로 구현된 닷넷프레임워크에서 동작
  • Jython
    • 자바로 구현된 JVM에서 실행
  • PyPy
    • Pure Python으로 구현된 Python처리 시스템
    • JIT(Just Time Complier)에 의해 cPython보다 고속으로 동작하는 경우가 많음
  • MicroPython
    • 임베디드 환경에서 동작하는 것을 목표로 한 Python의 서브센스 구현
  • BRYTHON
    • JavaScript를 사용한 Python처리 시스템에서 브라우저에 Python코드를 실행할 수 있도록 구현

2) Python 언어의 특징

Python 언어의 특징

  1. 코드의 단순성과 표준성
    • Python의 다른 객체 지향 언어를 사용하는 코드의 구문보다 간결하고 간단하며 규칙적임
    • 서술문들은 줄로 끝나고 블록 구조는 들여쓰기 형태로 나타남
    • EX) “Hello world”를 출력하는 구문 만들기
      • Test.java
         public class Test{
         public static void main(String[] args){
            System.out.println("Hello world")
         }
         }
        
      • Test.py
         print("Hello world")
        
  2. 높은 이식성
    • Python은 플랫폼이 독립적이면서 모든 OS환경에 연동됨
  3. 객체 지향 언어
    • Python은 클래스 추상화와 함수형 추상화를 제공하는 객체 지향 언어이자 함수형 프로그래밍 언어코루틴(Coroutineu)을 지원하는 언어
  4. 확장 가능한 라이브러리

    • Python은 방대한 표준 라이브러리를 제공함
    • 정규 표현식, 자동 문서 생성, 유닛 테스트 GUI등 Python패키지들을 지속적으로 업데이트 하며 Python Package Index제공

Python의 단점

  1. GIL 문제

    현재 cPython의 Interpreter에서 동시에 오직 하나의 스레드만 동작하도록 허용하면서 생기는 문제

  2. 다중 스레드(Multi-Thread)의 성능 저하

    cPython에서는 다중 스레드보다 다중 프로세스의 사용 권장 다중 프로세싱 패키지를 제공해 스레드와 비슷하게 구현할 수 있도록 지원

  3. 모바일 플랫폼 라이브러리가 없음

Python 프레임 워크의 5가지 분야

  1. 웹사이트 제작
    • Django, Flask, FastAPI등으로 웹사이트와 서비스 구축 가능

      EX) 인스타그램, 유튜브

    • 기존 Python으로 구축된 시스템 위에 블로그나 SNS기능을 추가한 경우

      다른 언어가 아닌 Python을 그대로 사용할 수 있음

  2. 데이터 수집
    • 크롤링(Crawling)스크래핑(Scraping)라이브러리 사용시 외부에서 텍스트와 이미지 데이터를 효율적으로 수집하고 저장할 수 있음
    • 정기적으로 열람하고 있는 사이트에 업데이트 정보 및 가격 등의 데이터 수집 가능
    • 수집된 데이터를 정리한 후 CMS프레임 워크와 조합하면 정보 제공 사이트의 구축 가능
      • EX) SNS등 온라인 트렌드 정보 수집
      • EX) 주식, 환율 트레이딩을 하는 클라이언트를 위한 정보 사이트
  3. 인공지능(AI)
    • 최근 Python이 특히 주목받고 있는 분야
    • 수집된 데이터를 바탕으로 자발적으로 학습하는 로봇은 풍부한 AI라이브러리를 갖춘 Python을 사용해서 효율적으로 만들 수 있음
    • 오픈 소스 기계 학습 라이브러리 : 탠서플로우(TensorFlow), 파이토치(PyTorch)
  4. 데이터 분석
    • Python은 높은 수치 계산 능력을 가짐
    • 대량의 데이터베이스의 데이터를 계산 및 읽기 쉬운 테이블로 적재 가능
    • 빅데이터 분석을 통해 데이터 그래프나 분포도 등 다양한 그래프 생성 가능
  5. 블록체인
    • HTTP 요청이나 해시 함수를 사용할 수 있음

      적은 개발 인원으로 안정된 블록체인 시스템을 단기간에 개발 할 수 있음

Python을 학습해야 하는 이유

  1. Dynamic Language
    • Python은 문법이 간결한 프로그램을 작성할 수 있고 생산성이 좋으며 배우기 쉬움
    • 초대형 프로젝트를 Dynamic Language로 구현하거나 쉽고 활용하기 편리한 어플리케이션, 웹 등의 구축하기를 원할 경우 활용
  2. 데이터 처리 시스템 라이브러리 및 수학적 연산을 가짐
    • 데이터의 수집, 해석과 그것을 활용한 AI개발 등에 적합함
  3. 데이터의 관리 및 적재가 용이함
    • Crowd data Storage Servicer, SNS개발, 블록체인에도 유용한 라이브러리를 제공하고 있는 언어

2. Python 구문과 실행

1) Python 문법 특징

Python 문법 특징

  1. 간결하고 가독성이 좋음
    • 코드 블록을 들여쓰기로 구분하여 소스 코드가 한눈에 들어옴
    • 공동작업이 원활하게 구현되는 특징 ```python classMyClass: def_init_(self.value): self.value=value print(“Class is Created! Value = “,value)

    ```

  2. 동적(Dynamic)임
    • 입력한 값을 바로 출력 구문으로 호출해서 사용
    • 동적인 형(dynamic Typing)과 동적인 해결(Dynamic resolution of names)사용
    • 프로그램의 크기를 크게 줄여주면서 테스트에 용이함
      >>>a=input("a:")
      a:100
      >>>print(a)
      100
      
  3. 유니코드 제공
    • 문자열이 모두 유니코드를 나타냄
    • 한글, 한자 등의 언어 표현을 자유롭게 출력함(값을 대입)
      >>>print('안녕?')
      안녕?
      
  4. 세미콜론(;)과 역슬래쉬()
    • 쉘 : 코드작성
    • 엔터 : 다음 명령으로 이동하거나 들여쓰기
    • 콜론(:) : 문장 구분
    • 세미콜론(;) : 명령을 끝에 붙이지 않으며, 굳이 명령의 끝에 붙여도 오류가 나진 않음
    • 예외적으로 한 줄로 여러 개의 명령을 선언할 경우 : 세미콜론으로 구분함
    • 역슬래쉬() : 문장이 길어질 때 다음 줄까지 구문을 잇겠다는 의미
    • 아래 예시코드의 결과는 동일
      • 예시코드 1
         >>> su = 10
         >>> if su==10:a=1;b=2;c=3
        
      • 예시코드 2
         >>> if su=10
         a=1
         b=1
         c=1
        

2) Python프로그램 설치

  1. Python 파일 설치
  2. Jupyter Notebook을 Python명령을 통해 설치 후 실행
  • pip 명령어 + install 옵션 + jupyter 입력 > Jupyter 프로그램이 설치됨
    pip install jupyter
    
  • Jupyter nodebook 실행
    jupyter notebook
    
    • 주의사항

      Jupyter notebook 명령어 수행한 후 명령 프롬프트 창을 열어놓고 서버를 연동해야 함


Share this post