Contents
- 1. 02 Python Seminar
- 2. ๊ฐ์ฌ ๋ฐ ์ผ์
- 3. Goal
- 4. Related Document or book
- 5. Date of Seminar
- 6. Main Contents
1. 02 Python Seminar ¶
- 02 ํ๋ฒ ํ๋ฐฐ๋ค์๊ฒ ์ธ์ด์ ๊ธฐ์ด. ์ด๋ป๊ฒ ์๊ฐํ๋ฉด C ๋ณด๋ค๋ ๊ธฐ์ด๋ฅผ ์ก๊ธฐ๋ ๋ ์ฝ๊ณ ๋ ์น์ํ๊ฒ ์ธ์ด๋ฅผ ๋ฐฐ์ธ์ ์๋ค๋ ์ทจ์งํ์ ์ ํ
- Class ๊ฐ๋
๊น์ง๋ ๋ค์ด๊ฐ์ง ์์ ์์ .. ์์ง๊น์ง๋ ํจ์ ๊ฐ๋
์ก๊ธฐ๊ฐ ๋ฐ์ ๊บผ๋ผ๋ ์๊ฐ์ด ๋ฌ
- ์๋ฃํ, ์ฐ์ฐ์ , ๊ธฐ๋ณธ๋ฌธ๋ฒ , ํจ์ , ๋ชจ๋์ ์ค์ ์ ์ผ๋ก ๋ค๋ฃฐ ์์ ์
- ์๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฌ์ค๊น๊ฐ
๊ณ ๋ฏผ๋จ
(์ด๋ป๊ฒ๋ค ํ ๊น์ ?)
3. Goal ¶
- ๊ทธ๋ค์ด ์ธ์ด ๋ฌธ๋ฒ์ ์ด๋ ค์์ ๋๋ผ์ง ์์์ผ๋ฉด ์ข๊ฒ ๋ค๋ ๋ฐ๋จ
- ์
๋๋ ๋ง๊ณ 10๋ช ์ด์๋ง ์ธ๋ฏธ๋์ ์์ผ๋ฉด ํ๋ ๋ฐ๋จ
- ๋ด๊ฐ ๋๋๋ก์ด๋ฉด ์ฝ๊ฒ ํ๋ฐฐ๋ค์๊ฒ ๊ฐ๋ฅด์ณ์ค์ ์์์ ํ๋ ๋ฐ๋จ
Who is "๋ด" here? - ๋ด๋ผ์ฉ
- ๋ง์ง๋ง์ผ๋ก ํ๋ฐฐ๋ค๊ณผ ๊ฐ์ด ํ์ด์ฌ ์คํฐ๋๋ฅผ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ฐ๋จ
4. Related Document or book ¶
- ๋๋ถ๋ถ์ ์ ๋ณด๋ Learning Python ์์ ๋ฐ์ต .. ๊ทธ์ฑ
์ด ๊ฐ์ฅ ์ฌ์ธ๊บผ ๊ฐ์ต๋๋ค.
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