def add(a, b): return a+b print add(1, 2) print def myabs(x): if x < 0 : x = -x return x print abs(-4) print myabs(-4) def add(a, b): return a + b print add c = add(10, 30) print c f = add print f(4, 5) print f print f is add def simpleFunction(): pass simpleFunction() def addmember(members, newmember): if newmember not in members: # 기존 멤버가 아니면 members.append(newmember) # 추가 members = ['hwang', 'lee', 'park', 'youn'] # 리스트에 초기 멤버 설정 addmember(members, 'jo') # 새로운 멤버 추가 addmember(members, 'hwang') # (이미 존재하는) 새로운 멤버 추가 print members def f1(b): b = 100 a = 200 f1(a) print a def f2(b): b = "abc" a = "def" f2(a) print a def f3(b): b = (1,2,3) a = (4,5,6) f3(a) print a def f4(b): b[1] = 10 a = [4,5,6] f4(a) print a def f5(b): b['a'] = 10 a = {"a":1, "b":2} f5(a) print a def nothing(): return print nothing() def print_menu(): print '1. Snack' print '2. Snake' print '3. Snick' print_menu() a = print_menu() print a def abs(x): if x < 0 : return -x return x print abs(-10) def swap(x, y): return y, x # 튜플로 리턴된다. a = 10 b = 20 print a, b print a, b = swap(a, b) # 결과적으로 a, b = b, a와 동일 print a, b print a = 10 b = 20 x = swap(a, b) print x[0], x[1] # 하나의 이름으로 튜플을 받아서 처리할 수 도있다. def length_list(l): res = [] for el in l: res.append(len(el)) return res l = ['python', 'pyson', 'pythong', 'pydon'] print length_list(l) l = ['python', 'pyson', 'pythong', 'pydon'] print [len(s) for s in l] def add(a, b): return a + b c = add(1, 3.4) d = add('dynamic', 'typing') e = add(['list'], ['and', 'list']) print c print d print e def incr(a, step=1): return a + step b = 1 b = incr(b) # 1 증가 print b b = incr(b, 10) # 10 증가 print b def incr(step=1, a): return a + step def incr(a, step=1, step2=10): return a + step + step2 print incr(10) def area(height, width): return height * width #순서가 아닌 이름으로 값이 전달 a = area(height='height string ', width=3) print a b = area(width=20, height=10) print b print area(20, width=5) area(width=5, 20) def incr(a, step=1, step2=10, step3=100): return a + step + step2 + step3 print incr(10, 2, step2=100) def incr(a, step=1, step2=10, step3=100): return a + step + step2 + step3 print incr(10, 2, step2=100, 200) def incr(a, step=1, step2=10, step3=100): return a + step + step2 + step3 print incr(10, 2, step2=100, step3=200) def varg(a, *arg): print a, arg varg(1) varg(2,3) varg(2,3,4,5,6) def printf(format, *args): print format % args printf("I've spent %d days and %d night to do this", 6, 5) def h(a, b, c): print a,b,c args = (1, 2, 3) h(*args) dargs = {'a':1, 'b':2, 'c':3} h(**dargs)