개발 이야기/Python
Python - 13. 함수
Crazy Lazy
2021. 7. 23. 21:52
1. 함수의 정의 및 특징.
- 특정한 반복되는 패턴이 있을 경우 이를 간편하게 사용하고자 사용.
- 입력값이 있거나 없을 수 있음.
- 반환값이 있거나 없을 수 있음.
- 함수 안에서 사용되는 변수는 지역변수. (함수 밖의 동일한 명칭의 변수와 값을 공유하지 않음)
# 함수 사용법.
def 함수명(매개변수):
수행 내용
# 함수 사용 예시 - 입력값 존재, 반환값 존재.
def add(a, b):
return a + b
a=1
b=2
c=add(a, b)
print(c) # 결과 : 3
# 함수 사용 예시 - 입력값 미존재, 반환값 존재.
def hi1():
return 'hi'
d=hi1()
print(d) # 결과 : hi
# 함수 사용 예시 - 입력값 존재, 반환값 미존재.
def yn(a):
if len(a) > 0:
print('yes')
else:
print('no')
e=yn('what') # 결과 : yes
print(e) # 결과 : None
# 함수 사용 예시 - 입력값 미존재, 반환값 미존재.
def hi2():
print('hi')
f=hi2() # 결과 : hi
print(f) # 결과 : None
2. 매개변수 활용.
- 매개변수에 초기 값 설정 가능.
- * 를 매개변수 앞에 붙이면 tuple 로 변환하여 받아짐.
- ** 를 매개변수 앞에 붙이면 dict 로 변환하여 받아짐.
# 매개변수 초기값 설정. (초기 값 설정 시 설정된 매개변수가 뒤에 위치해야 함)
def add2(a,b=0):
return a + b
add2(3,2) # 결과 : 5
add2(3) # 결과 : 3
# 동적 입력 수량일 때 함수 사용법. (매개변수에 * 를 붙이면 tuple 로 변환하여 받아줌)
def add3(*args):
result = 0
for i in args:
result += i
return result
add3(1,2) # 결과 : 3
add3(1,2,3,4) # 결과 : 10
# 키워드 파라미터를 이용한 함수. (매개변수에 ** 를 붙이면 dict 로 변환하여 받아줌)
def printk(**k):
print(k)
printk(a=1, b=2) # 결과 : {'a': 1, 'b': 2}
3. 함수 활용.
- 함수 호출 시 매개변수 위치가 모호할 땐 매개변수 명에 값을 선언하는 방식으로 호출 가능.
- 반환 값을 tuple 로 결과값 반환 가능.
- return 을 명시하여 함수 즉시 종료 가능.
- lambda 를 이용하여 함수를 한 줄로 표현 가능.
# 매개변수 지정 호출 기능. (순서 상관없이 지정 매개변수에 인자 전달 가능)
def minus(a, b):
return a - b
minus(3,7) # 결과 : -4
minus(b=3,a=7) # 결과 : 4
minus(a=3,b=7) # 결과 : -4
# 다중 반환 함수. (tuple 로 결과 값 반환)
def add_and_minus(a,b):
return a + b, a - b
add_and_minus(13, 2) # 결과 : (15, 11)
# 즉시 종료
def abc(a):
if a=='b':
return
print('abc')
abc('a') # 결과 : 'abc'
abc('b') # 결과 : (아무것도 출력되지 않음)
# lambda. (함수를 한 줄로 간단히 표현, lambda 인자 : 수행내용)
add4 = lambda a, b: a+b
result = add4(1,2)
print(result) # 결과 : 3