[How] 어떻게 파이썬을 배울 것인가?

파이썬에 대한 다양한 책과 자료들이 많다.
어디서부터 시작해야 할까? 프로그래밍 언어를 배울 때 항상 배우는 순서가 있었다. 하기 글은 5가지 중요한 컨셉을 이야기한다. 비록 자바에 대해 이야기 하지만, 파이썬에도 동일하게 적용될 수 있다고 생각한다.

Programming 101 – The 5 Basic Concepts of any Programming Language

5가지 이외에 함수, 모듈, 클래스를 더 배울 필요가 있다. 특히 클래스는 C++과 같은 객체지향 언어의 경험이 없으면 시간을 두고 익힐 필요가 있다. 문법 뿐만 아니라 개념을 이해하고 다룰 줄 알아야 하기 때문이다.
  1. Tools (툴)
  2. Syntax (구문, 문법)
  3. Variables (변수)
  4. Data Structures (자료 구조)
  5. Control Structures (제어 구조)
  6. Functions (함수)
  7. Modules (모듈)
  8. Classes (클래스)

1. 사용 환경 셋업 (Tools)

파이썬 설치는 아나콘다 배포판을 이용하자. 가장 많이 쓰이고, 다양한 패키지를 같이 설치할 수 있다.

Download Anaconda Distribution

아나콘다 패키지 내에 있는 Jupyter를 설치하여 개발 환경을 세팅하는 것을 추천한다. 공부하기에 좋다. Youtube에 CS Dojo의 "Python Tutorial for Absolute Beginners" 강의를 들어도 좋다. 영어 공부도 할 겸.

Anaconda, Jupyter를 이용한 파이썬 개발환경 구축

[YOUTUBE] Python Tutorial for Absolute Beginners #1

2. 구문 (Syntax)

파이썬 구문의 특징은 다음과 같다.
  1. 한 줄이 한 문(Statement)이며,
  2. 괄호()는 옵션이다.
  3. 모든 복합 문은 콜론(:)으로 시작되며,
  4. 블록 구분은 들여쓰기(Indentation)로,
  5. 코멘트는 #으로 시작한다.
다음 링크에는 Python 구문에 대한 것과 더불어 코딩 스타일, 그리고 주요 예약어가 나와 있으니 참고할 만하다.

Python Syntax

3. 변수 (Variables)

우선 변수와 객체, 그리고 바인딩(변수와 객체의 연결)의 개념을 이해해야 한다. 그리고 많이 쓰는 문자열 변수와 기본 데이터 타입인 Int, float 등에 대해서도... 다른 언어를 배웠으면 대부분 알고 있는 개념일 듯.

위키독스, 파이썬으로 배우는 알고리즘 트레이딩, 파이썬 변수와 객체

4. 자료 구조 (Data Structures)

파이썬에서는 기본 자료형인 숫자형, 문자형, 불린형 이외에 고차원(?)의 4가지 자료 구조를 기본적으로 제공한다. 대신 C에서의 Array가 따로 없다. 사실 곰곰히 생각해 보면 이 4가지만 있으면 충분한 것 같다. 과하지도 않고 부족하지도 않고... 이것이 파이썬의 철학인 것 같다. 위 네가지 중에서도 리스트는 익숙하게 사용하도록 꼭 익혀야 한다. 아래 링크를 활용하길...
  1. 리스트: list(), []
  2. 튜플(Tuple): 유한개 사물의 순서 있는 열거 ()
  3. 딕셔너리(Dictionary): {}
  4. 집합: set()
예제로 배우는 Python 프로그래밍, 컬렉션: List

5. 제어 구조 (Control Structures)

파이썬에서는 기본적으로 Boolean 변수(bool)를 제공한다. 그리고 그 값은 True, False로 기본 예약어로 지정되어 있다. 다른 언어를 배웠다면 이해는 되겠지만, 문법이 약간씩 다르니 그 차이만 익히면 되겠다.
  1. 논리연산자
  2. if, if ~ else, if ~ elif ~ else
  3. for, range(), [], (), {}
  4. while
예제로 배우는 Python 프로그래밍, 반복문

6. 함수 (Functions)

함수를 어떻게 정의하고, 파라미터와 반환값을 어떻게 하는지를 알아야 한다. 파이썬에서는 2개 이상의 변수를 반환하는 방법을 가지고 있다.
  1. 선언하기: def
  2. 파라미터 (입력값 전달하기)
  3. 반환값 (return), 2개 이상 값 반환하기
예제로 배우는 Python 프로그래밍, 함수

7. 모듈 (Modules)

모듈은 C의 라이브러리와 개념이 유사하다. 코딩한 함수와 변수 등을 파일(*.py)로 저장하여 놓고 Import하여 사용하면 된다. 모듈을 Import하는 방법도 몇가지가 있다.

위키독스, 파이썬으로 배우는 알고리즘 트레이딩, 모듈

8. 클래스 (Classes)

데이터와 관련 함수를 한데 모아서 새로운 자료구조를 만드는 것을 클래스라고 한다. 클래스는 선언하고 그 클래스로 객체(Object)를 인스턴스(Instance)화 하여 사용한다. 뭔 말인지 모르겠으면 설명을 쉽게 해놓은 하기 링크를 참조하시면 좋겠다. C++과 다르게 파이썬 만의 클래스 및 내부 함수 선언 문법이 있으니 꼭 익혀야 한다. 그리고 C++의 static 키워드의 역할을 대신하는 class 변수와 instance 변수에 대해서도 알아야 할 듯.
  1. 선언하기: class
  2. 클래스 내부 함수 선언: "self"
  3. 생성자: __init__(self)
  4. namespace
  5. class variables vs instance variables
  6. 상속 (Inheritance)
인터넷에 여러가지 자료가 있는데, 꼭 필요한 내용만 쉽게 설명한 것으로 "파이썬으로 배우는 알고리즘 트레이딩"을 추천한다.

위키독스, 파이썬으로 배우는 알고리즘 트레이딩, 클래스

이제는 사용법을 알았으니, 하고 싶은 일을 해보자. 언어는 익숙해져서 사용할 때 공기처럼 그 존재를 느끼지 못해야 한다.



이 글은 네이버 블로그에도 올린 것이다.

댓글