Python

Python 기초 문법 - 문자열 포맷팅, f-string

chillcoder 2023. 3. 21. 23:55

문제) 

아래와 같은 딕셔너리로 이루어진 리스트에서

해당하는 각각의 데이터로,

 

영수의 점수는 70점입니다.

...

...

 

와 같은 결과를 차례대로 출력하기

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:
    print('s['name']의 점수는 str(s['score'])점입니다.')

   -> s['name'] 을 문자열(' ')에 포함시킬 수 없음

for s in scores:
    print(s['name']'의 점수는', str(s['score'])'점입니다.')

   -> 문자열을 잇는 형태가 잘못됨

 

 

해답)

for s in scores:
    print(s['name']+'의 점수는 '+str(s['score'])+'점입니다.')

도출하고 싶은 값들( s['name'], str(['score']) )과 문자열(' ')을 이어주는데(+)

 

for s in scores:
    name = s['name']
    score = str(s['score'])
    print(name+'의 점수는 '+score+'점입니다.')

이왕이면 변수를(name, score) 두어 형태를 간단히 해준다.

 

for s in scores:
    name = s['name']
    score = str(s['score'])
    print(f'{name}의 점수는 {score}점입니다.')

f-string 을 활용하면 형태를 더욱 간단히 할 수 있다.

 

영수의 점수는 70점입니다.
영희의 점수는 65점입니다.
기찬의 점수는 75점입니다.
희수의 점수는 23점입니다.
서경의 점수는 99점입니다.
미주의 점수는 100점입니다.
병태의 점수는 32점입니다.

출력하면 위와 같은 결과를 얻을 수 있다.