1회. Python 시작하기




1. 스크립트 언어의 이해


1-1 스크립트(Script) 언어란 무엇인가?

  • 스크립트(scripts)의 사전적 의미 - 연극의 대사등이 적혀 있는 스크립트에서 유래
  • Script Language의 wikipedia 정의 (http://en.wikipedia.org/wiki/Scripting_language)
    • a programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator

1-2 컴파일 언어와 스크립트 언어와의 비교

  • 컴파일(Compile) 방식의 언어에 의해 작성되는 응용 프로그램은 컴파일러에 의해 기계어로 번역된 채로 실행되기 때문에, 수정이 빈번하게 발생할 경우에는 수정 후 다시 컴파일을 해야함.
    • 덩치가 큰 프로그램은 컴파일 시간이 꽤 길다. 즉, 간단한 수정에도 오랜기간의 컴파일 시간이 요구된다.

  • 반면에 수정이 빈번하게 발생하는 경우에는 소스 코드를 한줄 한줄 읽어 바로바로 실행하는 인터프리터 방식이 상당히 유리하다.
  • 스크립트 소스코드를 컴파일 방식에 의해 중간 코드(Bytecode)로 우선 만들고, 이를 다시 인터프리터 방식으로 해석하여 수행하는 방법도 종종 활용된다.

  • 스크립트 언어의 장점
    • 개발 시간이 단축된다.
    • 소스 코드 수정이 빠르고 간단하게 이루어진다.
  • 스크립트 언어의 단점
    • 중간 코드를 만드는 것은 간단하지만 그것을 실제로 실행시키는 것은 많은 작업을 필요로 한다.
    • 실행 시간이 오래 걸린다.

1-3 대표적인 스크립트 언어

  • JavaScript
  • ActionScript
  • Perl
  • PHP
  • Python
  • Lua
  • Ruby

2 파이썬 언어의 유래 및 파이썬 언어의 특징


2-1 파이썬(Python)의 사전적 의미

  • Python의 사전적 의미는 독이 없는 뱀으로 먹이를 몸으로 감아서 압사시키는 큰뱀, 또는 그리스 신화에 나오는 악마

2-2 왜 파이썬이란 이름이 붙었나?

  • 프로그래밍 언어로서 Python 이름의 유래는 1970년대에 영국 BBC에서 방영한 "Monty Python's Flying Circus" 방영 프로그램에서 유래되었다. 이 프로그램은 매우 어색하고 이상한 행동을 보이는 사람들을 쇼형태로 방영하여 많은 인기를 누렸다.
  • 이 언어를 만든 Guido van Rossum이 이 프로그램의 대단한 팬이었기 때문이었다.
  • 1989년 12월 크리스마스 휴가를 보내고 있던 Guido는 휴가 기간동안 무엇인가 재미있게 할 수 있는 무언가를 찾고 있었다.
  • 연휴라서 연구실이 닫힌 상황에서 집에서 컴퓨터를 가지고 예전부터 생각하고 있었던 인터프리터(interpreter)를 만들어 보기로 결심하였다.
  • 즉, Guido가 무료한 한때를 보내기 위하여 만들기 시작했던 언어가 지금 많은 사람들이 사용하는 Python 언어가 되었다.

2-3 파이썬의 출발

  • 파이썬의 기반은 80년대 초반에 Guido가 동료들과 함께 개발을 하였던 ABC라는 언어이다.
  • 80년대에 ABC라는 언어는 최고의 교육용 언어로 알려졌었고 전문 프로그래머가 아닌 사람이 배우기 편하게 만들어진 아주 훌륭한 언어였다.
  • 그럼에도 불구하고 전문 프로그래머들에게는 거의 받아 들여지지도 않았고 잘 사용되지도 않았다.
  • 이는 프로그래밍이 대중화가 많이 되지 않은 상황에서 전문 프로그래머들에게 외면받았을 때에 나올 수 있는 결과라고 볼 수 있다.
  • Guido는 파이썬으로 실제 문제를 더욱더 쉽게 해결할 수 있도록 설계하였으며 C언어나 유닉스 쉘을 대신해서 좀 더 편하게 사용할 수 있는 언어를 개발하는 데 초점을 맞추었다.

2-4 왜 파이썬을 배워야 하는가?

  • 가장 중요한 대답: "생산성이 높기 때문"
  • 먼저 개발하라! 그리고 나서 성능을 개선하라.

2-5 파이썬은 어떤 언어인가?

  • 대화 기능의 인터프리터 언어
  • 동적인 데이터 타입 결정 지원
In [1]:
def add(a,b):
    return a+b

print add(1,2)
print add('abc', 'def')
print add([1, 2, 3], [4, 5, 6])
3
abcdef
[1, 2, 3, 4, 5, 6]
  • 플랫폼 독립적 언어
  • 개발 기간 단축에 촛점을 둔 언어
  • 간단하고 쉬운 문법
  • 고수준의 내장 객체 자료형 제공
In [2]:
a=[12, 'abcde', 4+2j, [3,4,5]]
a.append('add')
print a;
[12, 'abcde', (4+2j), [3, 4, 5], 'add']
  • 메모리 자동 관리
  • 쉬운 유지 보수
  • 많은 수의 라이브러리 제공
  • 짧아지는 코드
  • 높은 확장성

2-6 파이썬을 어디에 사용하면 적당한가?

  • 시스템 유틸리티
  • GUI
    • wxpython, tkinter
  • 게임 프로그래밍
    • 파이썬 게임엔진: PyOpenGL PySDL PyGame Kivy PyOgre Panda3D Cocos2D PySoy
  • 웹 프로그래밍
    • django 프레임워크
  • 수치 프로그래밍
    • nextworkx 모듈
  • 데이터베이스 프로그래밍
  • 기타
  • 참고: http://mulgu.kr/73

2-7 파이썬의 장점

  • Guido가 생각했던 Python 문법적 특징은 들여쓰기를 철저하게 지킨도록 언어를 설계했다는 점이다.
  • 이는 코드의 가독성을 현격히 높혀준다.
  • C 언어에서처럼 {} 등의 괄호를 넣지 않기 때문에 프로그램을 좀더 깔끔하게 만들어준다.
  • 파이썬 코드는 재사용하기가 쉽다.
  • 코드의 분석이 쉽기 때문에 다른 사람이 작성한 코드를 받아서 작업하는 사람들이 훨씬 더 작업을 편하게 해준다.

03 파이썬 코딩 환경 구성


3-1 파이썬 코딩 환경 구축

3-1-1 Python 전용 통합개발환경(IDE) 사용

  • Enthought Canopy
  • Python 실행
    • Enthought Canopy 직접 활용
    • 커맨드 창 (터미널)
    • ipython 명령어 이용

3-1-2 이클립스 사용

3-1-3 추천하는 코딩 환경 구성 방법

  • 1) Enthought Canopy 설치
  • 2) 이클립스 설치 (설치가 안되어 있는 경우)
  • 3) PyDev 플러그인 설치

3-2 대화식 모드로 간단한 파이썬 예제 실행하기

In [2]:
print 4+5
print "Hello World!"
9
Hello World!

3-3 산술 연산하기

In [2]:
# -*- coding: utf-8 -*-
print 4 + 5
print 12 - 32
print (4 + 5) * 6
print 4 + 5 * 6
print 9 / 5        # 정수/정수 연산 결과는 정수
print 9.0 / 5.0
print 9 / 5.0
9
-20
54
34
1
1.8
1.8

3-4 간단한 문자열 연산하기

In [5]:
print 'Hello'
print "Hi there!"
Hello
Hi there!
In [3]:
a = 'My name is '
b = 'Amenda'
print a + b
My name is Amenda

3-5 파이썬 버전 알아보기

In [3]:
import sys
print sys.version
print
print sys.version_info
2.7.6 | 64-bit | (default, Jun  4 2014, 16:42:26) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]

sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)

3-6 파일로 저장하여 실행하기

  • 다음 내용의 cal.py 만들기
    # file: cal.py
    import calendar
    calendar.prmonth(2014, 11)
  • 커맨트 창 (터미널 창)에서 해당 폴더로 이동 후 다음 명령어 수행 python.py
    • python cal.py

3-7 대화식 모드에서 혹은 다른 모듈에서 모듈 파일 실행하기

In [5]:
execfile('/Users/yhhan/Documents/workspace/python/01/cal.py')
   November 2014
Mo Tu We Th Fr Sa Su
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

참고 문헌: 파이썬(열혈강의)(개정판 VER.2), 이강성, FreeLec, 2005년 8월 29일