f-string
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = s['score']
print(name, score)
print(name+'의 점수는 '+str(score)+'점입니다')
print(f'{name}의 점수는 {score}점입니다')
: 문자열 앞에 f만 붙여주면 된다
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}
]
for person in people:
name = person['name']
age = person['age']
if age > 20:
print(name)
이 코드는
for person in people:
if person['age'] > 20:
print(person['name'])
이 코드와 같다
try-except
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print(person['name'], '에러입니다')
map
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
#people을 돌면서 check_adult에다가 넣어라
print(list(result))
#결과값을 list로 묶어라
여기서 if문은
if person['age'] > 20:
return '성인'
else:
return '청소년'
이렇게 쓸 수 있다
return '성인' if person['age']>20 else '청소년'
lambda 표현식
lambda 매개변수: 매개변수를 이용한 동작
result = map(lambda x: '성인' x['age']>20 else '청소년', people)
↓
result = map(lambda person: ('성인' if person['age']>20 else '청소년'), people)
filter 함수
result = filter(lambda person: person['age']>20, people)
*람다식은 보통 x로 쓴다
result = filter(lambda x: x['age']>20, people)
= people의 요소를 하나하나 x에 넣고 x['age']값이 20보다 크면 가져와라
파이썬 문법은 좀 어떠세요?