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์ด ์ฐจ์„ธ๋Œ€ ์–ธ์–ด์˜ ํŠน์ง•์œผ๋กœ ๊ผฝ๋Š”) ๋™์ ์ž๋ฃŒํ˜• ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด

    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 2021-02-07 05:22:04
    Processing time 0.0173 sec