g = lambda x, y: x + y
print("g(1, 2)->", g(1,2))
#inc는 default 파라미터
incr = lambda x, inc = 1: x + inc
print("incr(10)-->", incr(10)) #inc 기본 인수 값으로 1 사용
print("incr(10, 5)-->", incr(10, 5))
g(1, 2)-> 3
incr(10)--> 11
incr(10, 5)--> 15
vargs = lambda x, *args: args+args # *args -> 가변 인수
print("vargs(1,2,3,4,5)->", vargs(1,2,3,4,5)) #(1,2,3,4,5)--> 1은 x, 나머지는 튜플형태로 args에 할당
vargs(1,2,3,4,5)-> (2, 3, 4, 5, 2, 3, 4, 5)
#리스트의 원소가 람다함수로 들어감
func = [lambda x, y : x + y, lambda x, y : x - y, lambda x, y : x * y, lambda x, y : x / y]
def menu():
print("0. add")
print("1. sub")
print("2. mul")
print("3. div")
print("4. quit")
return input("Select menu:")
while 1: # while 1 -> 무한 루프
sel = int(menu())
print("sel-> ",sel)
print("len(func)-->",len(func))
if sel < 0 or sel > len(func): # 0보다 작은 값이거나 4보다 큰 값(-1,-2, -3, 5, 6, 7, 8)은 수행 x
continue
if sel == len(func):
break # 중간에 break 있어, 조건 미 충족 시 무한루프를 빠져나옴
x = int(input('First operand:') )
y = int(input('Second operand:') )
print("Result = ", func[sel](x,y))
- add
- sub
- mul
- div
- quit
Select menu:3
sel-> 3
len(func)--> 4
First operand:2
Second operand:3
Result = 0.6666666666666666