저는 변수를 출력할 때, 문자열을 이어 붙여서 출력하곤 했습니다. 그런데, 사실 간단한 방법이 있었습니다. 파이썬 3.6 부터는 Literal String Interpolation이 도입되었습니다. PEP 498에서는 이를 f-string으로 언급하고 있는 듯 합니다.
간단하게 예제 몇 개를 보도록 하겠습니다. 먼저 cost를 출력하는 방법입니다.
앞에 f 지시자가 들어갔다는 것을 보시면 됩니다. 그리고, 뒤에 {cost}라고 적혀져 있는데요. 실행 결과를 보겠습니다.
cost is 21350이라고 나옵니다. cost가 {cost}이다. 꽤나 유용하게 쓰일 법 합니다. 왜냐하면, 저는 이러한 작업을 문자열을 연결해서 많이 했기 때문입니다. 그런데, 이 방법은 읽기 쉽습니다. 많이 쓰일 법 합니다.
당연하게도 따옴표를 넣을 수도 있는데요. 위 예제를 cost is '21350'을 출력하는 예제입니다. 중요한 것은 '는 문자열을 구분하는 특수한 문자이기 때문에, escaping을 시켜야 합니다. 이 용어는 아마도, sql injection을 배우신다면 이스케이핑 처리를 해 주어야 한다고 많이 들으실 텐데요. 그 escaping 입니다.
실행 결과는 위와 같습니다.
이제, 옵션을 주어서 출력하는 방법을 알아 보겠습니다. c언어에서 printf문을 많이 써 보셨다면, 5d 정도는 아실 겁니다. 공간을 5만큼 주고 우측 정렬을 하라는 의미입니다. 마찬가지로 쓸 수 있는데요. {i: 5d} 이렇게 쓰면, 변수 i값을 출력할 때, 공간을 5만큼 주고 오른쪽 정렬을 해서 출력하라는 의미입니다. 결과를 보면 알 수 있습니다.
결과가 잘 나왔습니다. 요구사항이 하나 더 들어왔습니다. 3자리 수마다 콤마를 찍는 것은 국룰입니다. 즉, 1000 대신에 1,000 이렇게 찍고 싶습니다. 그렇게 할 수는 없을까요? 문서를 보시면, 이상한 문법 같은 게 나오는데요. 포맷 spec 부분만 보겠습니다. 쭉 보면 뭔가 필요한 부분일 거 같은 정보는 width, grouping_option, 소수점 자릿수 (precision), type 순으로 온다는 것입니다.
10,d는 width가 10이고, grouping 옵션이 ,이고, 타입이 정수라는 것입니다. 실행 결과는 아래와 같습니다.
잘 나왔네요.
이제 소수점에 대해서도 찍어 보겠습니다.
acc가 37/53이라고 나왔습니다.
이것을 그냥 출력하면 0.6981132075471698 이렇게 찍는 것을 알 수 있습니다. 너무 긴 거 같습니다. 소수점 4번째 자리까지 찍고 싶습니다.
그러면 이렇게 바꾸면 되겠군요.
의도대로 잘 출력이 된 듯 하네요. 이전에는 string append를 해서 출력을 많이 했었습니다. 이 기능을 알고 나니, 변수 같은 것들을 출력할 때에는 f string을 써야 겠다고 생각하였습니다. 편한 기능은 많이 써 봐야 할 듯 싶습니다.
'코딩 > 파이선' 카테고리의 다른 글
파이썬 sample vs choices 의 차이를 알아봅시다. (0) | 2021.03.23 |
---|---|
파이썬 삼항 연산자 : 간단한 조건 판단에 쓰면 유용하다. (0) | 2021.03.18 |
파이썬 sorted 사용 방법을 알아봅시다. (4) | 2021.03.05 |
파이썬 filter : 배열에서 추출할 때 많이 쓴다. (2) | 2021.02.26 |
파이썬 로또 프로그램을 sample 함수를 이용해서 만들어 봅시다. (0) | 2021.02.19 |
최근댓글