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보다 비교적 간결한 코드
  • 신경망 모델을 쉽게 구현하도록 지원
  • 빠른 모델 훈련 시간
  • 실시간 결과값 시각화