E D R , A S I H C RSS

02_Python


1. 02 Python Seminar


  • 02 학번 후배들에게 언어의 기초. 어떻게 생각하면 C 보다는 기초를 잡기는 더 쉽고 더 친숙하게 언어를 배울수 있다는 취지하에 선택
  • Class 개념 까지는 들어가지 않을 예정 .. 아직까지는 함수 개념 잡기가 바쁠꺼라는 생각이 듬
  • 자료형, 연산자 , 기본문법 , 함수 , 모듈을 중점적으로 다룰 예정임
  • 예를 어떻게 보여줄까가 -_- 고민됨 -_- (어떻게들 할까요 ?)

2. 강사 및 일정

  • 강사 = 00 이봐라
  • 일정 = 확실히 정해지지 않음

3. Goal


  • 그들이 언어 문법에 어려움을 느끼지 않았으면 좋겠다는 바램
  • -_- 더도 말고 10명 이상만 세미나에 왔으면 하는 바램
  • 내가 되도록이면 쉽게 후배들에게 가르쳐줄수 있었음 하는 바램
    Who is "내" here? - 봐라용 :)
  • 마지막으로 후배들과 같이 파이썬 스터디를 할수 있기를 바라는 바램

4. Related Document or book


  • 대부분의 정보는 Learning Python 에서 발최 .. 그책이 가장 쉬울꺼 같습니다.

5. Date of Seminar


  • 아직 미정입니다 빨리 하도록 해봐야죠

6. Main Contents


6.1. 파이썬은 무었인가?


  • 가장 정확하게 말하자면 객체 지향 스크립 언어이다. (see also Ousterhout's IEEE Computer article Scripting: Higher Level Programming for the 21st Century at http://home.pacbell.net/ouster/scripting.html )
  • 사용하기 쉽고 , 배우기 쉬우며 여러 방향으로 이용할수 있는 언어이다.
  • GUI , 시스템 유틸리티 , AI , 인터넷 스크립팅 등에 사용할수 있는 언어이다.
  • C, C++, Java 에 비해 상당히 쉬운 문법 구조를 가지고 있다
  • (RCM이 차세대 언어의 특징으로 꼽는) 동적자료형 객체지향 언어

see also http://fallin.lv/PythonRumors

6.2. 파이썬이 사용된 예


  • Red Hat의 리눅스 인스톨러인 아나콘다는 파이썬으로 짜여져 있다
  • Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다
  • NASA 는 임무 제어 시스템에 파이썬을 사용한다
  • Industrial Light and Magic 사는 파이썬을 사용하여 광고용 에니메이션을 제작한다
  • 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다

6.3. 파이썬의 특징

  • 대화식 명령행이다
    C 나 C++ 은 소스를 한꺼번에 다 치고서 나중에 "컴파일" 하는식이지만 Python 의 경우 자신이 쓰는 라인마다 읽혀들어간다.
  • 모듈 파일 실행이다
    모듈이란 C 나 C++ 의 header 파일 처럼 각각의 명령어를 닮고있는 것의 집합이다.
  • 모든 운영체체 독립적이다
    자바와 같이 VM 머신상에서 돌아가는 이론이므로 운영체제 독립적이다.

6.4. C 와 C++ 과 Java 와 Python 의 간단한 소스 비교


6.4.1. Hello World for C

~cpp 
    #include <stdio.h>

    int main(void)
    {
        printf("Hello World\n");

        return 0;
    }

6.4.2. Hello World for C++

~cpp 
    #include <iostream.h>
    int main()
    {
         cout << "Hello World\n" ;
         return 0;
    }

6.4.3. Hello World for Java

~cpp 
    public class HelloWorldExample
    {
      public static void main(String[] args)
      {
        System.out.println("Hello World");
      }
    }

6.4.4. Hello World for Python

~cpp 
    Print "Hello World"

6.4.5. Quick Sort in Python

~cpp 
def qsort(aList): 
        if not aList: 
                return [] 
        ltList=[y for y in aList[1:] if y<aList[0]] 
        gtList=[y for y in aList[1:] if y>=aList[0]] 
        return qsort(ltList)+[aList[0]]+qsort(gtList) 

6.5. 자료형과 연산자


6.5.1. 파이썬 프로그램은 모듈(module), 문(statement), 그리고 객체(object) 로 구성된다.

~cpp           1. 프로그램은 모듈로 구성되어 있다. 
         2. 모듈은 문을 포함한다. 
         3. 문은 객체를 생성하고 처리한다. 


  • 파이썬은 내장 자료형을 기본으로 한다.
    '' 기존 C 나 C++ 의 경우는 어떠한 변수를 지정할떄 타입을 꼭 지정해 줘야했다 그 예로 int 나 char 이 있다 하지만 파이썬의 경우는
    자체적으로 자료형을 지원해서 나오므로 어떠한 변수형인지 지정을 해주지 않아도 된다 ''

~cpp 
수치형   3.1415, 1234 , 999L 
문자열   'spam', "guido's"
리스트   [1,[2, 'three'],4]
사전     {'food':'spam','taste':'yum'}
튜플     (1,'spam',4,'U')
파일     text=open('eggs', 'r').read()

6.5.2. 수치형

~cpp 
1234, -25,0            일반정수 이며 C의 경우 int 에 해당한다.    
9999999999999L         Long 형 정수 이다.. long 형의 정수에 대해서는 C 의 long int 와는 다르게 정수뒤에 "L" 만 붙이면 된다.
1.23, 3E210            부동소수점이며 C의 경우 double 에 해당한다.
0177, 0x9ff            8진수, 16진수 

6.5.3. 문자열

~cpp 
s1 = ''                빈 문자열 
s2 = "spams"           이중 인용부호
block = """..."""      삼중 인용부호
s1+s2                  연결
s2*3                   반복
s2[i]                  인덱스
s2[1:j]                슬라이스
len(s2)                길이
for x in s2            반복

6.5.4. 리스트

  • 파이썬의 가장 유연한 자료형이므로 객체 자료의 순서를 갖는 집합이다.
  • 객체 간의 순서를 가지게 된다(index 번호를 가진다)

~cpp 
L1 = []                빈리스트
L2 = [0,1,2,3]         네 개의 항목: index 는 0 ~ 3 임

6.5.5. 사전

  • 리스트와 비슷하나 리스트와는 다르게 객체 간의 순서를 가지지 않는 객체들의 집합이다

~cpp 
d1 = {}                                    빈사전
d2 = { 'spam':2, 'eggs':3 }                2개의 값을 가지는 사전
d3 = { 'food' : { 'ham':1, 'egg':2 } }     내포

6.5.6. 튜플

  • 리스트와 같은 방식으로 동작하지만 객체의 내용을 바꿀수 없다.

~cpp 
()                    빈 튜플
t1 = (0,)             한 개의 항목 튜플
t2 = (0,1,2,3)        네 개의 항목 튜플

6.6. 기본문

~cpp 

호출                 함수 실행            stdout.write("spam, ham.toast\n") 
출력                 객체 출력            print "THe killer", joke
If/elif/else      선택적 수행          if "python" in text:print text
For/else          시퀀스 반복          for x in mylist: print x 
While/else        일반적인 루프        while1:print "hello"
Pass              아무일도 하지 않음   while1:pass
Break,Countinue   루프 점프            while1:if not line: break
Import, From      모듈 접근            import sys; from sys import stdin
Def, Return       함수 만들기          def f(a,b,c=1, *d): return a+b+c+d[0]
Class             객체 만들기          class subclass: staticData = []
Global            네임 스페이스        def function(): global x,y; x = 'new'
Del               겍체 삭제            def data[k]; del data[i:j]; del obj.attr

6.7. 함수 와 모듈


6.7.1. 함수와 관련된 문

~cpp 

호출                 myfunc("spam, ham, toast\n")
def, return       def adder(a,b,c=1, *d): return a+b+c+d[0]
global            def function(): global x,y; x = 'new'

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0931 sec