포맷팅 기초
문자열에서 가장 중요한 것이라고 생각하는 문자열 포맷팅입니다.
문자열 포맷팅은 문자열 중에 일 부분을 변수로 두어 그 부분만 가변으로 내용을 달리 할 수있도록 하는 기법 입니다.
예를 들면
나는 사과를 먹었다.
나는 바나나를 먹었다.
나는 망고를 먹었다.
나는 자두를 먹었다.
여기에서 변수는 과일 명이 되고 나머지는 동일한 포맷( 나는 XX를 먹었다.) 가 됩니다.
# Code 1
# 기본 출력
print("나는 사과를 먹었다.")
print("나는 바나나를 먹었다.")
print("나는 망고를 먹었다.")
print("나는 자두를 먹었다.")
이 내용을 포맷팅 시켜서 작성한다면 아래와 같은 코드가 됩니다.
# Code 2
# 포맷
format_text = "나는 %s를 먹었다."
print(format_text % "사과")
print(format_text % "바나나")
print(format_text % "망고")
print(format_text % "자두")
어떠신가요? 전 괭장히 만족스러운 코드로 보입니다.
어떤 과일이든 이제는 과일이름만 넣으면 되니까요
문자만 넣을 수 있는건 아닙니다. 숫자도 넣을 수 있어요
# Code 3
# 포맷
text = "나는 사과 %d개 먹었다."
print(text % 1)
print(text % 3)
print(text % 5)
print(text % 9)
한번에 두개 이상도 가능 합니다.
# Code 4
# 포맷
text = "나는 %s %d개 먹었다."
print(text % ("사과", 1))
print(text % ("바나나", 3))
print(text % ("망고", 5))
print(text % ("자두", 9))
포맷팅 종류
문자열 포맷팅 예제로 정수와 문자만 사용 했는데 이외에도 다양한 데이터들을 대입할 수 있습니다.
포맷코드 | 설명 |
%s | 문자열 |
%c | 문자 1개 |
%d | 정수 |
%f | 부동소수 |
%x | 16진수 |
%o | 8진수 |
%% | % 문자 자체 |
다양하게 사용할 수 있으니 사용해 보도록 합시다.
그런데 뭘 써야 하는지 가끔 햇갈린다 그럴땐 %s 쓰시면 됩니다.
# Code 6
# 포맷
text = "나는 %s %s개 먹었다."
print(text % ("사과", 1))
print(text % ("바나나", 3))
print(text % ("망고", 5.2))
print(text % ("자두", 'c'))
이렇게 잘 나오네요.
%s 쓰셔도 되지만 타입 확인등을 위해서는 평소에 맞는 타입의 포맷코드를 사용하시는 것을 좋은 습관이겠죠.
포맷코드와 숫자 함께 사용
위에서 보았듯이 %d, %s 등의 포맷 코드는 문자열 안에 어떤 값을 삽입하기 위해 사용합니다.
하지만 포맷 코드를 숫자와 함께 사용하면 더 유용하게 사용할 수 있습니다.
# Code 7
# 포맷 정렬
text = "나는 %5s %d개 먹었다."
print(text % ("사과", 1))
print(text % ("바나나", 3))
text2 = "나는 %-5s %d개 먹었다."
print(text2 % ("망고", 5))
print(text2 % ("자두", 3))
text3 = "나는 %s %0.2f개 먹었다."
print(text3 % ("망고", 5.12341234))
print(text3 % ("자두", 3.345232))
%5s : 전체길이 5개인 공간에 채우고 남는 칸은 공백으로 채움니다. (만약 5자가 넘더라도 출력은 전체 다됩니다. 5자 보다 작을때 공백으로 채워집니다.) 오른쪽 정렬 사용 합니다.
%-5s : 위와 동일한데 왼쪽 정렬 사용 합니다.
%0.2f : 소수점 이하 2자리까지만 표현 합니다.
문자열 포맷팅은 너무나 중요하고 좀 더 잘 사용 하려면 더 많은 기반지식이 필요합니다.
현재로는 이정도 까지만으로도 많은 표현이 가능 합니다.
그러나 좀 더 효율적이고 정밀한 컨트롤을 위해서는 추후 기반지식이 더 높아진 후에 다시 한번 더 다루도록 하겠습니다.
'Python > Python 시작하기' 카테고리의 다른 글
8. 파이썬 자료형 - 리스트 (list) (0) | 2019.12.14 |
---|---|
7. 파이썬 자료형 - 불 (bool) 자료형 (0) | 2019.12.14 |
5. 파이썬 자료형 - 문자열 연산 (0) | 2019.12.12 |
4. 파이썬 자료형 - 문자열 이란? (0) | 2019.12.12 |
3. 파이썬 자료형 - 숫자 (0) | 2019.12.12 |