파이썬 문법 뽀개기를 전부 수강했지만 SQL과 달리 너무 어려워서 기초부터 다시 공부하기로 했다. 그중 내가 모르던 것들이나 오개념을 정리해보자


1. 여기서 그냥 people에 age > 20으로 조건 걸어서 출력하면 되지 않나 싶었다.



def bus_fee(age):
if age >= 65:
return 0
elif age >= 20:
return 1200
else:
return 0
ages = [28, 17, 70]
total = sum(bus_fee(a) for a in ages) # 반환값(숫자)이라 합계 계산 OK
print(total)
다음과 같이 return으로 나이에 따라 버스 요금이 출력되게 하고, 아래 또 다른 함수로 나이를 여러 개 넣어 버스 요금을 종합하게 했을 때, 위의 함수 return에서 출력된 요금이 아래 함수에서도 쓰여서 계산되는 것이다.

people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25},
]
def check_adult(person):
if person['age'] >= 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
result = map(lambda x: ('성인' if x['age'] 20 else '청소년'), people)
print(list(result))
코드를 다음과 같이 표현할 수도 있다.
(lambda x,y: x + y)(10, 20)
이런식으로 함수의 이름을 지어줄 필요도 없다.