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)
3 4 4
def add(a, b):
return a + b
print add
<function add at 0x10d9ad6e0>
c = add(10, 30)
print c
40
f = add
print f(4, 5)
9
print f
print f is add
<function add at 0x10b5ad758> True
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
['hwang', 'lee', 'park', 'youn', 'jo']
def f1(b):
b = 100
a = 200
f1(a)
print a
200
def f2(b):
b = "abc"
a = "def"
f2(a)
print a
def
def f3(b):
b = (1,2,3)
a = (4,5,6)
f3(a)
print a
(4, 5, 6)
def f4(b):
b[1] = 10
a = [4,5,6]
f4(a)
print a
[4, 10, 6]
def f5(b):
b['a'] = 10
a = {"a":1, "b":2}
f5(a)
print a
{'a': 10, 'b': 2}
def nothing():
return
print nothing()
None
def print_menu():
print '1. Snack'
print '2. Snake'
print '3. Snick'
print_menu()
1. Snack 2. Snake 3. Snick
a = print_menu()
print a
1. Snack 2. Snake 3. Snick None
def abs(x):
if x < 0 : return -x
return x
print abs(-10)
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] # 하나의 이름으로 튜플을 받아서 처리할 수 도있다.
10 20 20 10 20 10
def length_list(l):
res = []
for el in l:
res.append(len(el))
return res
l = ['python', 'pyson', 'pythong', 'pydon']
print length_list(l)
[6, 5, 7, 5]
l = ['python', 'pyson', 'pythong', 'pydon']
print [len(s) for s in l]
[6, 5, 7, 5]
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
4.4 dynamictyping ['list', 'and', 'list']
def incr(a, step=1):
return a + step
b = 1
b = incr(b) # 1 증가
print b
b = incr(b, 10) # 10 증가
print b
2 12
def incr(step=1, a):
return a + step
File "<ipython-input-82-67693752f310>", line 1 def incr(step=1, a): SyntaxError: non-default argument follows default argument
def incr(a, step=1, step2=10):
return a + step + step2
print incr(10)
21
def area(height, width):
return height * width
#순서가 아닌 이름으로 값이 전달
a = area(height='height string ', width=3)
print a
b = area(width=20, height=10)
print b
height string height string height string 200
print area(20, width=5)
100
area(width=5, 20)
File "<ipython-input-80-32b5ca4bbf7f>", line 1 area(width=5, 20) SyntaxError: non-keyword arg after keyword arg
def incr(a, step=1, step2=10, step3=100):
return a + step + step2 + step3
print incr(10, 2, step2=100)
212
def incr(a, step=1, step2=10, step3=100):
return a + step + step2 + step3
print incr(10, 2, step2=100, 200)
File "<ipython-input-89-3dbdc3e84e66>", line 4 print incr(10, 2, step2=100, 200) SyntaxError: non-keyword arg after keyword arg
def incr(a, step=1, step2=10, step3=100):
return a + step + step2 + step3
print incr(10, 2, step2=100, step3=200)
312
def varg(a, *arg):
print a, arg
varg(1)
varg(2,3)
varg(2,3,4,5,6)
1 () 2 (3,) 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)
I've spent 6 days and 5 night to do this
def h(a, b, c):
print a,b,c
args = (1, 2, 3)
h(*args)
1 2 3
dargs = {'a':1, 'b':2, 'c':3}
h(**dargs)
1 2 3
참고 문헌: 파이썬(열혈강의)(개정판 VER.2), 이강성, FreeLec, 2005년 8월 29일