공부합시다!/python
11.Function
간서치
2023. 2. 3. 00:15
728x90
드디어 무시무시한 함수로 들어가네요!
Code의 편리한 재사용을 위해서 사용하는 것이 함수입니다.
인자값만 바꾸면 그때 그때 재사용을 할 수 있지요!
핵심을 잘 기억하세요!
# 함수식 및 람다(lambda)
# 함수 정의 방법
# def 함수명(parameter):
# code
# 함수 호출
# 함수명
# EX-1 return 값 없음
def hello(test):
print('Hello',test)
hello('Python')
hello(7777)
# EX-2 return 값 있음
def hello_return(world):
val = 'Hello ' + str(world)
return val
str1 = hello_return('Python!!!!!!!!')
print(str1)
# EX-3 다중 return
def func_mul(x):
y1 = x * 100
y2 = x * 200
y3 = x * 300
return y1, y2, y3
val1, val2, val3 = func_mul(100)
print(val1, val2, val3)
# EX-4
# args(가변형의 매개변수 사용가능, 튜플), *kwagr(딕셔너리 형태)
def args_func(*args):
print(args)
args_func('Kim')
args_func('Kim', 'Park')
args_func('Kim', 'Park', 'Lee')
def args_func1(*args):
for t in args:
print(t)
args_func1('Kim')
args_func1('Kim', 'Park')
args_func1('Kim', 'Park', 'Lee')
# index 표시
def args_func(*args):
for i,v in enumerate(args):
print(i, v)
args_func('Kim')
args_func('Kim', 'Park')
args_func('Kim', 'Park', 'Lee')
# kwargs
def kwargs_func(**kwargs):
print(kwargs)
kwargs_func(name1='Kim')
kwargs_func(name1='Kim', name2='Park')
kwargs_func(name1='Kim', name2='Park', name3='Lee')
# kwagrs-1
def kwargs1_func(**kwargs):
for k,v in kwargs.items():
print(k, v)
kwargs1_func(name1='Kim')
kwargs1_func(name1='Kim', name2='Park')
kwargs1_func(name1='Kim', name2='Park', name3='Lee')
# 전체 혼합
def exmaple_mul(arg1, arg2, *args, **kwargs):
print(arg1, arg2, args, kwargs)
exmaple_mul(10, 20)
exmaple_mul(10, 20, 'park', 'kim', age1=24, age2=25)
# 중첩 함수 (함수내 함수)
def nested_func(num):
def func_in_func(num):
print('>>>',num)
print('in func')
func_in_func(num + 10000)
nested_func(10000)
# 예제 - 6
def func_mul(x):
y1 = x * 100
y2 = x * 200
y3 = x * 300
return y1, y2, y3
val1, val2, val3 = func_mul(100)
print(val1, val2, val3)
def func1_mul(z : int) -> list:
y11 = z * 100
y12 = z * 200
y13 = z * 300
return [y11, y12, y13]
print(func1_mul(5))
# 람다식
# 람다식 : 메모리 절약, 가독성 향상, 코드 간결
# 함수는 객체 생성 -> 리소스(메모리 ) 할당
# 람다는 즉시 실행(heap 초기화) -> 메모리 초기화
# 일반적 함수 -> 변수 할당
def mul_1(num : int) -> int:
return num * 10
var_func = mul_1
print(var_func)
print(type(var_func))
lambda_mul_2 = lambda num : num * 10
print('>>>', lambda_mul_2(10))
### 함수내 함수(람다식 사용 가능)
def func_final(x, y, func):
print(x * y * func(10))
func_final(10, 10, lambda_mul_2)
# 1000이라는 값을 곱하려면 넣으려면
print(func_final(10, 10, lambda x :x *1000))
728x90