Contents
1. 02 Python Seminar ¶
- 02 학번 후배들에게 언어의 기초. 어떻게 생각하면 C 보다는 기초를 잡기는 더 쉽고 더 친숙하게 언어를 배울수 있다는 취지하에 선택
- Class 개념 까지는 들어가지 않을 예정 .. 아직까지는 함수 개념 잡기가 바쁠꺼라는 생각이 듬
- 자료형, 연산자 , 기본문법 , 함수 , 모듈을 중점적으로 다룰 예정임
- 예를 어떻게 보여줄까가 고민됨 (어떻게들 할까요 ?)
3. Goal ¶
- 그들이 언어 문법에 어려움을 느끼지 않았으면 좋겠다는 바램
- 아 더도 말고 10명 이상만 세미나에 왔으면 하는 바램
- 내가 되도록이면 쉽게 후배들에게 가르쳐줄수 있었음 하는 바램
Who is "내" here? - 봐라용
- 마지막으로 후배들과 같이 파이썬 스터디를 할수 있기를 바라는 바램
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이 차세대 언어의 특징으로 꼽는) 동적자료형 객체지향 언어
6.2. 파이썬이 사용된 예 ¶
- Red Hat의 리눅스 인스톨러인 아나콘다는 파이썬으로 짜여져 있다
- Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다
- NASA 는 임무 제어 시스템에 파이썬을 사용한다
- Industrial Light and Magic 사는 파이썬을 사용하여 광고용 에니메이션을 제작한다
- 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다
6.3. 파이썬의 특징 ¶
- 대화식 명령행이다
C 나 C++ 은 소스를 한꺼번에 다 치고서 나중에 "컴파일" 하는식이지만 Python 의 경우 자신이 쓰는 라인마다 읽혀들어간다.
- 모듈 파일 실행이다
모듈이란 C 나 C++ 의 header 파일 처럼 각각의 명령어를 닮고있는 것의 집합이다.
- 모든 운영체체 독립적이다
자바와 같이 VM 머신상에서 돌아가는 이론이므로 운영체제 독립적이다.
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.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.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