SWEA 파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법 #1
- 프로그래밍 언어의 특징 이해
- 본인에게 맞는 개발환경 구성
- 작성이 용이
- 높은 가독성
- 폭넓은 사용자층을 가진 프로그래밍 언어
- 빠른 학습속도
- 대화형 shell 제공 : 명령의 수행 결과를 빠르게 확인 가능
- 확장 기능 지원
- 다양한 플랫폼에서 사용 가능
-
수행속도가 느리다.
- 컴퓨터 속도가 빨라지면서 극복
- 성능에 영향을 미치는 부분은 C언어 등으로 모듈화하며 극복
- C로 작성된 Python
- 보통의 Python을 가리키는 말(사실상 표준)
- .Net과 Mono용
- C#으로 구현
- 자바로 구현된 Python
- 자바가상머신(JVM; Java Virtual Machine)에서 동작
- 자바 클래스, 자바 표준 라이브러리 사용 가능
- Python으로 구현된 Python
- Cpython보다 빠르게 수행되도록 설계
- 아름다운 것이 추한 것보다 낫다
- 명시적인 것이 묵시적인 것보다 낫다
- 단순한 것이 복잡한 것보다 낫다
- 복잡한 것이 난해한 것보다 낫다
- 가독성이 중요하다
명령의 실행 결과를 대화형으로 바로 확인 가능
실행 시간 값에 의해 자료형 결정
코드블록의 들여쓰기로 가독성 확보 들여쓰기를 강제하는 경향
표준 라이브러리와 통합환경이 배포판과 함께 제공
- 정규 표현식
- 운영 체제의 시스템 호출
- XML 처리
- 직렬화
- 각종 통신 프로토콜
- 전자 메일이나 CSV파일의 처리
- 데이터베이스 접속
- 그래픽 사용자 Interface
- HTML, 파이썬 코드 구문 분석 도구
파이썬 소프트웨어 재단에서 관리 : 무료 사용 가능
객체지향, 함수형 프로그래밍 지원
- 프로그램의 문서화도 언어의 기본 기능에 포함
- 도움말 문서와 API도 체계적으로 정리
- 읽기 쉽고, 효율적인 코드를 간단하게 쓰려는 철학 반영
- 다른 언어로 쓰인 모듈을 연결하려는 목적으로 이용
- 많은 사용 프로그램에 내장되어 스크립트 언어로 활용
- 유니코드 사용
- 생성된 객체에 대한 메모리 관리는 Garbage Collector 이용
- 2000.10. 개발
- Garbage Collector와 Unicode 지원
- 개발 과정에서의 투명한 공동체 지원
- 2008.12. 개발
- 2.x대 버전의 Python과
하위호환성이 없다. - 주요 기능 다수가 이전 버전과 호환되도록 Python 2.6과 2.7버전에 반영되었다.
- 내장 자료형의 내부적인 변화 및 일부 자료형의 구성 요소 제거
- 표준 라이브러리의 패키지 재배치
- 향상된 유니코드 지원
- 2.X Unicode Literal을 사용해 Unicode 지원 [ex) u"가"]
- 3.X 모든 문자열이 Unicode이기 때문에 문자열처럼 사용하면 됨 [ex) "가"]
- 한글로 변수명 선언 가능
- print문이 print()함수로의 변화
- 각 나라별 언어를 모두 표현하기 위해 만든 통합 코드체계
- 16bit이므로 최대 65,536자를 표현 가능
- 유니코드는 16bit, ASCII코드는 7bit
- Django : 회원가입, 사용자 인증 등 공통기능을 제공해 높은 개발 생산성 지원
- Flask : 파이썬용 마이크로 프레임워크. 간단한 웹 서비스 또는 모바일 서버 구축에 적합
- 문서 수집
- HTML 문서에 대한 구문 분석
- DOM 트리 탐색 등의 기능
- 문서 분석 및 정보 추출 기능
- 웹 문서에서 데이터 추출 규칙 작성 -> 문서 수집 및 필요 데이터 자동 추출
Python에서 과학 분야의 컴퓨팅을 위한 필수 패키지
- 강력한 다차원 배열 객체 지원
- 선형대수 기능
- 푸리에 변환 기능
- 난수 생성 기능
- 데이터 분석시 사용하는 표준 라이브러리
- 강력한 데이터 구조와 다양한 분석 도구 제공
Numpy, Matplotlib, IPython, Sympy, pandas 등을 포함
- Numpy, SciPy, Matplotlib을 기반으로 개발됨
- 분류, 회귀, 군집, 차원분석과 같은 머신러닝 지원
- 구글이 오픈소스로 공개한 머신러닝 및 딥러닝 프레임워크
- GPU를 이용한 연산 지원
- 각종 신경망 모델을 쉽게 구현하도록 지원
- GPU를 이용한 연산 지원
- Tensorflow보다 비교적 간결한 코드
- 신경망 모델을 쉽게 구현하도록 지원
- 빠른 모델 훈련 시간
- 실시간 결과값 시각화
