[[TableOfContents]] = 02 Python Seminar = * 02 학번 후배들에게 언어의 기초. 어떻게 생각하면 C 보다는 기초를 잡기는 더 쉽고 더 친숙하게 언어를 배울수 있다는 취지하에 선택 * Class 개념 까지는 들어가지 않을 예정 .. 아직까지는 함수 개념 잡기가 바쁠꺼라는 생각이 듬 * 자료형, 연산자 , 기본문법 , 함수 , 모듈을 중점적으로 다룰 예정임 * 예를 어떻게 보여줄까가 -_- 고민됨 -_- (어떻게들 할까요 ?) = 강사 및 일정 = * 강사 = 00 이봐라 * 일정 = 확실히 정해지지 않음 = Goal = * 그들이 언어 문법에 어려움을 느끼지 않았으면 좋겠다는 바램 * 아 -_- 더도 말고 10명 이상만 세미나에 왔으면 하는 바램 * 내가 되도록이면 쉽게 후배들에게 가르쳐줄수 있었음 하는 바램 ''Who is "내" here?'' - 봐라용 :) * 마지막으로 후배들과 같이 파이썬 스터디를 할수 있기를 바라는 바램 = Related Document or book = * 대부분의 정보는 Learning Python 에서 발최 .. 그책이 가장 쉬울꺼 같습니다. = Date of Seminar = * 아직 미정입니다 빨리 하도록 해봐야죠 = Main Contents = == 파이썬은 무었인가? == * 가장 정확하게 말하자면 객체 지향 스크립 언어이다. (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 == 파이썬이 사용된 예 == * Red Hat의 리눅스 인스톨러인 아나콘다는 파이썬으로 짜여져 있다 * Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다 * NASA 는 임무 제어 시스템에 파이썬을 사용한다 * Industrial Light and Magic 사는 파이썬을 사용하여 광고용 에니메이션을 제작한다 * 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다 == 파이썬의 특징 == * 대화식 명령행이다 '' C 나 C++ 은 소스를 한꺼번에 다 치고서 나중에 "컴파일" 하는식이지만 Python 의 경우 자신이 쓰는 라인마다 읽혀들어간다. '' * 모듈 파일 실행이다 '' 모듈이란 C 나 C++ 의 header 파일 처럼 각각의 명령어를 닮고있는 것의 집합이다. '' * 모든 운영체체 독립적이다 '' 자바와 같이 VM 머신상에서 돌아가는 이론이므로 운영체제 독립적이다. '' == C 와 C++ 과 Java 와 Python 의 간단한 소스 비교 == === Hello World for C === {{{~cpp #include int main(void) { printf("Hello World\n"); return 0; } }}} === Hello World for C++ === {{{~cpp #include int main() { cout << "Hello World\n" ; return 0; } }}} === Hello World for Java === {{{~cpp public class HelloWorldExample { public static void main(String[] args) { System.out.println("Hello World"); } } }}} === Hello World for Python === {{{~cpp Print "Hello World" }}} ---- === Quick Sort in Python === {{{~cpp def qsort(aList): if not aList: return [] ltList=[y for y in aList[1:] if y=aList[0]] return qsort(ltList)+[aList[0]]+qsort(gtList) }}} == 자료형과 연산자 == === 파이썬 프로그램은 모듈(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() }}} === 수치형 === {{{~cpp 1234, -25,0 일반정수 이며 C의 경우 int 에 해당한다. 9999999999999L Long 형 정수 이다.. long 형의 정수에 대해서는 C 의 long int 와는 다르게 정수뒤에 "L" 만 붙이면 된다. 1.23, 3E210 부동소수점이며 C의 경우 double 에 해당한다. 0177, 0x9ff 8진수, 16진수 }}} === 문자열 === {{{~cpp s1 = '' 빈 문자열 s2 = "spams" 이중 인용부호 block = """...""" 삼중 인용부호 s1+s2 연결 s2*3 반복 s2[i] 인덱스 s2[1:j] 슬라이스 len(s2) 길이 for x in s2 반복 }}} === 리스트 === * 파이썬의 가장 유연한 자료형이므로 객체 자료의 순서를 갖는 집합이다. * 객체 간의 순서를 가지게 된다(index 번호를 가진다) {{{~cpp L1 = [] 빈리스트 L2 = [0,1,2,3] 네 개의 항목: index 는 0 ~ 3 임 }}} === 사전 === * 리스트와 비슷하나 리스트와는 다르게 객체 간의 순서를 가지지 않는 객체들의 집합이다 {{{~cpp d1 = {} 빈사전 d2 = { 'spam':2, 'eggs':3 } 2개의 값을 가지는 사전 d3 = { 'food' : { 'ham':1, 'egg':2 } } 내포 }}} === 튜플 === * 리스트와 같은 방식으로 동작하지만 객체의 내용을 바꿀수 없다. {{{~cpp () 빈 튜플 t1 = (0,) 한 개의 항목 튜플 t2 = (0,1,2,3) 네 개의 항목 튜플 }}} == 기본문 == {{{~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 }}} == 함수 와 모듈 == === 함수와 관련된 문 === {{{~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' }}} ---- ["세미나/02대상"]