###단축키
def 함수이름(): | 받을 값과 함수 이름 | |
명령문 | 실행하고 싶은거 | |
return ... | ... 돌려줄값 | 돌려줄 값 |
def 함수이름(*변수이름): | *언팩 연산자 | 튜플(리스트)처럼 배열로 저장되어 사용할 수 있다 |
def 함수이름(변수이름, *변수이름): | 첫제값 만 한값 받고 2번째부터 튜플(리스트) 처럼 저장 |
변수도 넣고 리스트도 넣고 싶을때는 순서를 리스트를 뒤에 쓰면된다 |
def 함수이름(**변수이름): | 딕셔너리형 식의 가변 매개 변수 | 이름과 내용을 둘다 출력해주는 함수만들기 (사전) |
global 변수 | 전역변수 선언 | 그니깐 함수안에 변수를 밖에서도 쓸수 있게 제일 높은곳에 저장해둠 |
함수( lambda a, b: a+b): | 미리 계산해서 넣어준다 | 변수 하나를 받을 수 있는 함수에 전처리를 해준다 |
함수1(): 함수2(): return return함수2() |
클로저 | 함수 숨기기?? |
### def
def clac_sum(x, y):
return x + y
a, b = 2, 3
c = calc_sum(a, b)
d = calc_sum(a, c)
print("{0}".format(c))
print("{0}".format(d))
### def 함수이름(변수이름, *변수이름):
def calc_sum(precision, *params):
if precision == 0:
total = 0
elif 0 < precision < 1:
total = 0.0
for val in parrams:
total += val
return total
re_val = calc_sum(0, 1, 2)
print("calc_sum(0, 1, 2) 함수가 반환한 값: {0}".format(ret_val))
### def 함수이름(변수이름, *변수이름):
def calc_sum(precision1, precision2, *params):
if precision1 == 0:
total1 = 0
elif 0 < precision1 < 1:
total1 = 0.0
if precision2 == 0:
total2 = 0
elif 0 < precision2 < 1:
total2 = 0.0
for val in params:
total1 += val
total2 += val
return total1, total2
re_val = calc_sum(0, 0.1, 1, 2)
print("calc_sum(0, 0.1, 1, 2) 함수가 반환한 값: {0}".format(*ret_val))
print("calc_sum(0, 0.1, 1, 2) 함수가 반환한 값: {0}".format(ret_val[0], ret_val[1]))
### def 함수이름(**변수이름):
def use_keyword_arg_unpacking(**params):
for k in params.keys():
print("{0}: {1}".format(k, params[k]))
print("use_keyword_arg_unpacking()의 호출")
use_keyword_arg_unpacking(a=1, b=2, c=3)
결과값
a: 1
b: 2
c: 3
뭔가 약속 어긴거 같은데.????
### def 함수이름(x, y, operator="+"):
def calc(x, y, operator="+"):
if operator == "+":
return x + y
else:
return x - y
ret_val = calc(10, 5)
### print("calc(minus,10, 5)의 결과 값 : {0}".format(ret_val))
def calc(operator_fn, x, y):
return operator_fn(x, y)
def plus(op1, op2):
return op1 + op2
def minus(op1, op2):
return op1 - op2
ret_val = calc(plus, 10, 5)
print("calc(plus, 10, 5)의 결과 값: {0}".fomat(ret_val))
ret_val = calc(minus, 10, 5)
print("calc(minus, 10, 5)의 결과 갑: {0}".format(ret_val))
### calc(lambda a, b: a + b, 10, 5)
def calc(operator_fn, x, y):
return operator_fn(x, y)
ret_val = calc(lambda a, b: a + b, 10, 5)
print("calc(plus, 10, 5)의 결과 값: {0}".fomat(ret_val))
### 클로저
def outer_func():
id = 0
def inner_func():
nonlocal id
id += 1
return id
return inner_func
make_id = outer_func()
print("make_id() 호출의 결과: {0}".format(make_id()))
print("make_id() 호출의 결과: {0}".format(make_id()))
print("make_id() 호출의 결과: {0}".format(make_id()))
'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글
중복제거 (0) | 2020.01.07 |
---|---|
Python 가위바위보 (0) | 2020.01.07 |
Python while (0) | 2020.01.05 |
Python for문 (0) | 2020.01.05 |
Python 주석 달기 (0) | 2020.01.04 |