Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python 소개 2013.07.30 중원. 귀도 반 로섬 (Guido Van Rossum) 1989 년 12 월 25 일 파이썬 창시 ㅎㅎ 님들, 크리스마스 때 뭐함 ? Monty Python’s Flying Circus.

Similar presentations


Presentation on theme: "Python 소개 2013.07.30 중원. 귀도 반 로섬 (Guido Van Rossum) 1989 년 12 월 25 일 파이썬 창시 ㅎㅎ 님들, 크리스마스 때 뭐함 ? Monty Python’s Flying Circus."— Presentation transcript:

1 Python 소개 2013.07.30 중원

2 귀도 반 로섬 (Guido Van Rossum) 1989 년 12 월 25 일 파이썬 창시 ㅎㅎ 님들, 크리스마스 때 뭐함 ? Monty Python’s Flying Circus

3 파이썬의 특징 - 스크립트 언어 -Garbage Collection -dynamic typing - 엄청난 량의 라이브러리 - 쉬운 문법, 짧은 코드 원래 교육용으로 출발했다나 …

4 - 함수형, 객체지향 모두 지원 - 스크립트 언어인데, 바이트코드 배포도 된다. exe 파일 배포도 된다. -C++, C#, JAVA 대부분의 문법을 모두 지원 -C++, C#, JAVA 에선 불가능한 문법도 지원 - 언어 레벨에서 쓰레드도 지원

5 파이썬을 누가 쓰나요 ?

6 2013 년 세계 프로그래밍 언어 순위 http://redmonk.com/sogrady/2013/02/28/language-rankings-1-13/ Stack Overflow GitHub

7 일단 깔아보자. 2.7.x??? 3.3.x???

8 모 팀에서 Xcode 최신 버전 자동화 때문에 구글링해서 쓰는 소스 일부 딱, 걸렸음.

9 파이썬의 변수 int a; string str; int a[3] = {0,1,3}; a = 10 str = ‘MyName’ A = [0,1,3] 이런 것 안됨

10 x = 5 * 0.1 y = ‘helloWorld’ * 5 값을 넣는데 대해 유연 다른 형끼리는 알아서 캐스팅 된다. (common Sense..) x = [1,2,3] y = [4,x,6] z =[4, [1,2,3], 5]

11 편리한 인덱스 & 슬라이싱 x = ‘HelloWorld’ 뒤에서 3 번째 문자를 출력하시오 거꾸로 출력하시오 2 칸 띄워서 출력하시오

12 편리한 인덱스 & 슬라이싱 x = ‘HelloWorld’ 뒤에서 3 번째 문자를 출력하시오 Y = x[-3] 거꾸로 출력하시오 Y = x[:-1] 2 칸 띄워서 출력하시오 Y = x[::2]

13 파이썬의 제어문 제어문은 크게 딱 3 개 (if, for, while) switch => X 마찬가지 common sense 다만 다른 언어처럼 {,} 블록을 쓰지 않음. if a > 1 : print ‘big’ else : print ‘small’ 들여쓰기로 구분. 여러 칸, 탭 상관없이 칸만 맞으면 됨 파이썬이 원래 교육용으로 시작했다고 이야기했었나 ?

14 파이썬의 함수

15 함수도 들여쓰기랑 : 만 잘하면 됨. def add(a, b): return a+b 이런 것도 된다. def add(a, b): return a, b 이정도야 … >>print add([1,2,3],[4,5]): [1,2,3,4,5]

16 파이썬의 함수 또 이런 것도 된다. def foo(): def goo(): print ‘goo’ def boo(): print ‘boo’ goo() boo() 기본 인수도 물론 지원 def add(a, b=10): return a, b 가변 인수도 물론 지원 def add(a, *arg): return a, b 정의되지 않는 인수도 가능 def add(**kw): print kw => add(a=1,b=2)

17 파이썬의 함수 이것 또한 Common Sense.. def add(a,b) return a+b foo = add foo(1,2) 이런 건 뭐, 당연히 됨.

18 파이썬의 클래스 클래스는 좀 많이 달라요..

19 파이썬의 클래스 class g { private: int a; public: g(){}; } 마찬가지 이런 것 안됨. 그럼 이렇게 하면 될까 ? class S1: a = 1

20 파이썬의 클래스 클래스의 네임스페이스와 클래스 인스턴스의 네임 스페이스는 다른 영역 class S1: a = 1 x = S1() x.a = 10 print x.a => 10 print S1.a => 1 인스턴스 생성

21 파이썬의 클래스 클래스 인스턴스에 변수를 밖에서 넣어준다. class S1: pass x = S1() x.a = 10  x 인스턴스에 a 생성 x.b = 20  x 인스턴스에 b 생성 좀 이상하긴 하다

22 파이썬의 클래스 class S1: def __init__(self): self.a = 10 self.b = 20 print ‘__init__’ def __del__(self): print ‘__del__’ 대신 생성자에서 처리할 수 있음 self 는 this 인스턴스 소멸자 생성자

23 파이썬의 메소드 class S1: def set(self, v): self.value = v print self.value x = S1() x.set(5) 모든 메소드는 자기 인스턴스를 첫번째 인자로 받 는다.

24 파이썬의 클래스 상속 class Base: print ‘Base init’ def f(self): print ‘Base’ class Derived(Base): pass d = Derived() d.f() Base Derived Base2 Derived Base1 다중 상속도 가능

25 파이썬의 클래스 상속 다이아몬드 상속도 가능 Base2 Derived Base1 Base Base2 Derived Base1 Base object 에서 상속 받으면 탐색순서가 바뀜.

26 파이썬의 클래스 기타.. 특성상 모든 메소드는 가상함수임. 연산자, 인덱스, 슬라이딩 모두 오버로딩 가능 과연 파이썬에서 누가 클래스를 쓸까 ?

27 모 팀에서 Xcode 최신 버전 자동화 때문에 구글링해서 쓰는 소스 일부 쓴다

28 파이썬 특성 조금 더.. Built-in 타입과 유저 정의 타입 구분이 없고, 모두 접근 & 수정 가능 Built-in 타입을 상속받아 쓸 수 있음. (list,dict,tuple..) Constant 타입을 만들 수 없다. - c++ 의 const, Java 의 final 같은 기능 X C#/java 의 리플렉션 수준이 아니라 그냥 다 볼 수 있음 클래스에서 private, protected 같은 접근 제한이 모두 안될 것 같지만, 의외로 private 를 만들 순 있음. 하지만..

29 그리고 django 파이썬용 웹 프레임워크

30 그리고 django 파이썬용 웹 프레임워크 사실, 좀 비주류 …


Download ppt "Python 소개 2013.07.30 중원. 귀도 반 로섬 (Guido Van Rossum) 1989 년 12 월 25 일 파이썬 창시 ㅎㅎ 님들, 크리스마스 때 뭐함 ? Monty Python’s Flying Circus."

Similar presentations


Ads by Google