What is python?
부산대학교
2018.09.19
파이썬 소개
파이썬은
1. 인터프리터 언어 (interpreted language)
2. 동적 타입 (dynamically type)
3. 객체지향 언어 (object oriented programming)
4. 오픈소스 언어로 다양한 분야에서 사용되고 있다
5. 구글 프로젝트들이 파이썬으로 만들어지고 있다
1. 인터프리터 언어
2. 동적 타입
3. 객체지향 언어
그러나…
함수형 언어,
절차형 언어,
객체지향 언어,
명령형 언어
4. 오픈소스
https://docs.python.org/3/license.html
5. 구글 프로젝트들의 언어
https://quintagroup.com/cms/python/google
파이썬 창시자
Guido van Rossum
귀도 반 로섬
https://gvanrossum.github.io/
2018.7.13 / 자비로운
종신독재자(BDFL)에서 물러남
파이썬 창시자의 경력
1989 : CWI
….
2006 ~ 2012 : 구글
2013 ~ : 드롭박스
1991년 Python 발표 2000년 Python2 발표
2008년 Python3 발표
2020년 Python2 지원종료
파이썬의 간략한 역사
2010년 Python2.7 발표1989년 크리스마스에
심심해서 파이썬 구상
https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages
파이썬의 인기
파이썬의 장단점
장 점 단 점
- 문법이 쉽다
- 라이브러리가 풍부하다
- 멀티패러다임 개발이 가능
- 다양한 플랫폼에서 사용이 가능
- 메모리 자동 관리
- 2.x과 3.X이 서로 호환되지 않는다
- 빠른 연산에는 적합하지 않다
- 개발 IDE가 부족하다
파이썬으로 할 수 있는 일
- 웹 프로그래밍
- 수치연산 프로그래밍
- C/C++과 결합가능
- GUI 프로그래밍
- 시스템 프로그래밍 (제한적)
파이썬으로 할 수 없는 일
- 대단히 빠른 속도를 요구하는 프로그램
- 하드웨어를 직접 제어해야 하는 프로그램
파이썬의 파생언어
- Cpython
- Jython
- IronPython
- Pypy
Why Python3?
Python2 or Python3
https://pythonclock.org/
Python2 or Python3
https://python3wos.appspot.com/
Python2 or Python3
http://py3readiness.org/
Python2 or Python3
Python2 or Python3
How to Use
Python3
Python
https://www.python.org/
Windows 설치할 때는
bit를 주의합니다!
파이썬이 가진 수많은 라이브러리들
https://pypi.org/
pip – 파이썬이 가진 수많은 라이브러리를 관리
pip install {라이브러리 이름}
pip uninstall {라이브러리 이름}
파이썬 설치시 기본 설치
의존성까지 관리해줍니다!!!
pip – 파이썬이 가진 수많은 라이브러리를 관리
wheel – 파이썬 수동 설치
https://pythonwheels.com/
네트워크가 안될 때!
의존성을 수동으로 관리!!!
개발환경 – Pycharm
https://www.jetbrains.com/pycharm/
개발환경 – Visual Studio Code
개발환경 - 온라인
https://repl.it/ https://www.pythonanywhere.com/
https://ide.goorm.io
개발환경 - 온라인
개발환경 - IPython
https://ipython.org/
개발환경 – Jupyter
http://jupyter.org/
Ipython의 확장판!
Julia + Python + R 지원
개발환경 – anaconda
https://www.anaconda.com/download/
Jupyter의 확장판!
Jupyter + 데이터과학과
관련된 라이브러리
1,000여개!!!
개발환경 – Google Colaboratory
https://colab.research.google.com
Github, 구글 드라이브와
연동이 가능!
GPU도 지원
코딩 스타일 규약 – PEP8
https://www.python.org/dev/peps/pep-0008/?
Python 버전 확인
Python 버전 확인 2
virtualenv 1
virtualenv 2
virtualenv 4
virtualenv 5
파이썬 특징
단순함 그리고 직관적
들어쓰기 – indentation
동적 타입 변수
여러 반환값 처리
깔끔한 로직
패러다임의 전환! : C++ -> JAVA -> Python
파이썬 활용
Python Web Framework
django
Flask
Bigdata Platform - Splunk
Biopython
https://biopython.org/
Pygame
https://www.pygame.org/
Minecraft pi
GPIO
GUI Programming
1. Tkinter
2. PyQt
3. wxPython
4. Kivy
데이터 수집 – REST API
데이터 수집 – 웹스크래핑
옛날 옛적에… 그러나 그렇게 예전은 아닌…
가트너의 데이터 분석 모델
머신러닝의 사전적 정의
• 생각 방식이나 전혀 새로운 지식을 습득하는 것보다 이미 구현한
사고를 조절해서 사전에 정해 놓은 지식의 형태로 지식을 축적해서
학습하는 것!
– 인공지능 70 재미있게 알아보는 AI 키워드 / 제이펍
• 최적화, 축적 – 기계
• 창조성 - 인간
AI vs ML vs DL
1. Machine Learning?
Supervised Learning Unsupervised Learning
지도학습, 감독학습 비지도학습, 비감독학습, 자율학습
Label이 있다. Label이 없다.
예측과 분류 군집화
Secure Coding
http://www.pythonsecurity.org/
https://www.owasp.org/index.php/OWASP_Python_Security_Project
2015년 이후 update되고 있지 않음!!!
학습 자료
학습 사이트 – code combat
https://codecombat.com/
학습 사이트 – codecademy
https://www.codecademy.com
학습 사이트 – codeavengers
https://www.codeavengers.com
학습 사이트 – Python Course
https://www.python-course.eu/
학습 사이트 – datacamp
https://www.datacamp.com/
학습 사이트 – 한국기술교육대학교
https://portal.e-koreatech.ac.kr/page/lms
학습 앱 – sololearn
학습 앱 – mimo
학습 앱 – Encode

파이썬 소개