def funtion_name(parameter): #parameter: 함수 내부에서 쓸 변수 code
1) 기본 사용 예
def first_func(w):
print("hello, ", w)
word = "goodboy"
first_func(word)
2) return 사용
def return_func(w):
value = "hello, " + str(w)
return value
x = return_func('goodgirl')
# return 사용시, 결과값으로 반환되는 값을 받을 변수 선언해야 함
print(x)
3) 다중반환
def func_mul(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return y1, y2, y3
x, y, z = func_mul(10)
print(x, y, z)
4) 튜플, 리스트, 딕셔너리이용
def func_mul(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return (y1, y2, y3) #괄호로 묶으면 튜플
q = func_mul(20)
print(q)
5) 언팩킹
enumerate(열거하다) 함수
*args
: 튜플형태에서 많이사용, 갯수가 가변적이다!(별 하나)def args_func(*args): # 매개변수 명은 자유!
for i, v in enumerate(args): #i=인덱스 번호, v=문자열 출력
print('result : {}'.format(i), v)
print('----')
args_func('lee')
args_func('lee', 'park')
args_func('lee', 'park', 'kim')
result : 0 lee
----
result : 0 lee
result : 1 park
----
result : 0 lee
result : 1 park
result : 2 kim
----
**kwargs
: 딕셔너리형 반복(별두개)
def kwargs_func(**kwargs):
for v in kwargs.keys():
print('{}'.format(v), kwargs[v])
print('----')
kwargs_func(name1='lee')
kwargs_func(name1='lee', name2='park', name3='cho')
name1 lee
----
name1 lee
name2 park
name3 cho
----
혼합형 예)
def example(args_1, args_2, *args, **kwargs):
print(args_1, args_2, args, kwargs)
example(10, 20, 'lee', 'kim', 'park', age1=20, age2=30, age3=40)
*args
에는 1개든 10,000개든 "튜플"로 묶어서 반환
**kwargs
에는 1개든 10,000개든 "딕셔너리"로 묶어서 반환
6) 중첩함수
def nasted_func(num):
def func_in_func(num):
print(num)
print("in func")
func_in_func(num + 100)
nasted_func(100)
7) 람다식: 즉시 실행 함수(heap 초기화) -> 메모리 초기화
def mul_func(x, y):
return x * y
print(mul_func(10, 50))
결과: 500
람다식
def lambda_mul_func(x, y): return x*y
print(lambda_mul_func(50, 50))