- 반복되는 부분이 있을 경우 "반복적으로 사용되는 가치 있는 부분"을 한 뭉치로 묶어서 "어떤 입력값을 주었을 때 어떤 결괏값을 돌려준다"라는 식의 함수로 작성
- 프로그램을 함수화하면 프로그램 흐름을 일목요연하게 볼 수 있음
- 함수의 결괏값은 언제나 하나
- 함수 안에서 선언한 매개변수는 함수 안에서만 사용
- 매개변수는 함수 밖에서는 사용되지 않음
def 함수명(매개변수):
수행할 문장
- 함수의 결괏값을 돌려주는 명령어
- return을 단독으로 써서 함수를 즉시 빠져나갈 수 있음
- 매개변수는 함수에 입력으로 전달된 값을 받는 변수를 의미
- 인수는 함수를 호출할 때 전달하는 입력값
def add(a, b): # a, b는 매개변수
return a+b
print(add(3, 4)) # 3, 4는 인수
def add(a, b):
return a+b
result = add(a=3, b=7)
print(result)
def 함수이름(*매개변수):
수행할 문장
def add_many(*args):
result = 0
for i in args:
result = result + i
return result
a = add_many(1,2,3)
print(a)
b = add_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(b)
def add_mul(choice, *args):
if choice == "add":
result = 0
for i in args:
result = result + i
elif choice == "mul":
result = 1
for i in args:
result = result * i
return result
result = add_mul('add', 1,2,3,4,5)
print(result)
result = add_mul('mul', 1,2,3,4,5)
print(result)
키워드 파라미터
- 초기화시키고 싶은 매개변수를 항상 뒤쪽에 놓아야 함
# -*- coding: cp949 -*-
def say_myself(name, old, man=True):
print("나의 이름은 %s 입니다." % name)
print("나이는 %d살입니다." % old)
if man:
print("남자입니다.")
else:
print("여자입니다.")
say_myself("가나", 27)
say_myself("기니", 27, True)
say_myself("다리", 27, False)
a = 1
def vartest(a):
a = a +1
return a
a = vartest(a)
print(a)
a = 1
def vartest():
global a
a = a+1
vartest()
print(a)
- 함수를 한줄로 간결하게 만들 때 사용
add = lambda a, b: a+b # 두 개의 인수를 받아 서로 더한 값을 돌려주는 lambda 함수
result = add(3, 4)
print(result)