본문 바로가기

Language/Python

[Python] 문자열 포매팅

1번 고객님 주문하신 햄버거 나왔습니다.
21번 고객님 주문하신 피자 나왔습니다.
...
201번 고객님 주문하신 아메리카노 나왔습니다.

 

식당에서 주문한 음식이 나왔을 때 이런 소리를 많이 들어봤죠?

문장을 보면 **대기 번호**와 **주문한 음식**만 다른 것을 알 수 있어요!

 

프로그래밍을 통해서 똑같이 만들 수 있는데요.

대기 번호주문한 음식을 변수로 받아서 문장을 작성하면 되요.

그럼 어떻게 작성하는지 알아볼까요?

 

가장 먼저 포매팅을 사용하지 않고 문장을 만들어 볼게요.

 

wating_number = 1
food = '햄버거'
print(str(wating_number) + '번 고객님 주문하신 ' + food + ' 나왔습니다.')
>> (출력) 1번 고객님 주문하신 햄버거 나왔습니다.

 

출력문을 보면 ‘+’ 연산자를 이용해 문장을 작성하고 있어요.

아! wating_number를 문자열로 형변환 하는 이유는

파이썬에서는 문자열 끼리만 연산이 가능해서 형변환 해준거에요!

 

그럼 이번에는 포매팅을 이용하는 다양한 방법을 알아볼까요?

 

포맷 코드를 이용하는 방법

 

프로그래밍 언어에서는 문자열 포맷을 위해 다양한 코드를 지원해요!

 

%d → 정수(Integer) %f → 부동소수(floating-point) %o → 8진수 %x → 16진수
%c → 문자(character) %s → 문자열(String) %% → Literal(문자 %)  

 

이 코드들을 이용해서 아래와 같이 문자열을 만들 수 있어요.

 

wating_number = 1
food = '햄버거'
# 포맷 코드 하나만 이용할 때는 % wating_number 이렇게 작성하면 되요.
# 여러 개의 포맷 코드를 이용할 때는 아래 코드처럼 ()를 이용해요. - tuple처럼
print('%d번 고객님 주문하신 %s 나왔습니다.', % (wating_number, food))
>> (출력) 1번 고객님 주문하신 햄버거 나왔습니다.

 

format 함수를 이용하는 방법

 

다음으로는 파이썬에서 지원하는 format 함수를 이용해 볼게요.

변수를 입력할 곳에 {0}, {1}... 형식으로 몇 번째 데이터가 들어가야 하는지 먼저 표시해줘요.

그리고 format 함수에 각 데이터를 순서에 맞게 입력해주면 되요.

 

예제 코드로 알아볼까요?

 

name = '홍길동'
message = '제 이름은 {0} 입니다. 저는 {0} 이에요.'
print(message.format(name))
>> (출력) 제 이름은 홍길동 입니다. 저는 홍길동 이에요.

message2 = '제 이름은 {0} 입니다. 저는 {age}살 이에요.'
print(message.format(name, age=10))
>> (출력) 제 이름은 홍길동 입니다. 저는 10살 이에요.

 

이처럼 같은 데이터를 여려 곳에 작성할 수도 있고,

만약 입력해야 할 데이터가 많다면 괄호 안에 순서대로 데이터를 넣어주면 되요.

물론 {age}처럼 명시해서 사용하는 방법도 있어요!

 

f 문자열 포매팅을 이용하는 방법

 

파이썬 3.6 버전부터 지원하는 포매팅 방법이에요!

저도 f 문자열 방법을 많이 사용하고 있는데요.

먼저 예시 코드부터 볼까요?

 

name = '홍길동'
age = 10
print(f'제 이름은 {name} 입니다. 저는 {age}살 입니다.'
>> (출력) 제 이름은 홍길동 입니다. 저는 10살 입니다.

 

보시는 것처럼 중괄호 안에 변수명을 그대로 입력하면 되요!

여기서 가장 중요한 포인트는 문자열 앞에 f를 붙이는 것!

문자열 앞에 f를 붙임으로 f 문자열 포매팅을 이용할 수 있어요!

 

오늘은 숫자와 문자를 이용하여 간단하게 문자열 포매팅에 대해 알아봤어요.

문자열 포매팅은 다양한 자료형을 이용하여 구현할 수 있는데요.

이 부분은 나중에 이 게시글을 통해 추가로 작성하도록 노력해볼게요!