Page 20 -
P. 20
● 숫자 맞히기가 아니라 단어(문자열) 맞히기로 예제를 수정해보세요. 사전
순서로 정렬된 단어 리스트를 미리 만들고, 이를 사용자에게 보여주세요.
그리고 이 중에서 하나를 맞히라고 물어보기 바랍니다. 사용자가 어떤 단
어를 예측하면 답이 사전 순서에서 더 앞에 있는지 또는 뒤에 있는지 알
려주기 바랍니다.
f-문자열
이번 예제를 직접 풀었다면 "You guessed 5"와 같은 문자열을 출력하기 위해서 문자열과
숫자를 조합하는 코드를 사용했을 것입니다. 파이썬에 익숙하지 않은 독자는 문제를 풀다가 +
연산자로 문자열과 숫자를 결합할 수 없다는 사실을 깨달았을 것입니다. 그렇다면 어떻게 숫
자와 문자열을 결합해서 출력할 수 있을까요?
이러한 문제는 오랫동안 다른 프로그래밍 언어에서 파이썬으로 넘어오는 사람에게 큰 벽으로
작용했습니다. 파이썬 2.X버전에서는 다음과 같은 방법을 사용하기도 했습니다.
'Hello, %s' % 'world'
C 언어 개발자는 이미 printf 함수 등을 많이 사용하며 익숙했기 때문에 이러한 방식을 좋
아했지만, 대부분의 다른 개발자는 이러한 방식을 어려워했습니다. 일단 %라는 기호 자체가 새
로운 개발자에게 익숙하지 않았으며, 2개 이상의 값을 삽입하려면 괄호를 사용해야 했고, 값을
반복해서 출력하기 힘들었습니다.
그래서 str.format이라는 메서드가 등장하며, 이러한 문제를 개선했습니다.
'Hello, {0}'.format('world')
필자는 str.format을 굉장히 좋아하지만, 개발을 처음 하는 사람에게는 코드가 길어서 약간
사용하기 힘든 측면이 있습니다. 또한, 값이 들어가는 위치는 왼쪽에서 지정하고, 실제 값은 오
른쪽에서 지정하므로 코드를 보기 힘듭니다. {} 내부에 들어가는 문법은 파이썬에서만 사용하
는 특이한 형태의 문법이었기 때문에 많은 사람에게 새로운 문법을 공부하고 기억하게 강요했
습니다.
파이썬 3.6버전에서 이 문제를 해결하기 위해서 f-문자열이라는 기능이 추가되었습니다. 펄,
PHP, 루비, 유닉스 셸 등의 프로그래밍에서 오랫동안 사용되어 온 문자열과 같은 문법입니다.
f-문자열은 str.format과 비슷한 형태로 사용하지만, 값을 {} 내부에 곧바로 삽입할 수 있
다는 점에서 큰 차이가 있습니다.
계속
036
파이썬_06.indd 36 2021-11-18 오전 9:38:16