[Python] 문자열 포매팅
👩 문자열 포매팅
우선 문자열 포매팅을 알아보기 전에 다음과 같이 출력하는 상황을 생각해보자!
a = "hello"
b = "world"
print("a: " + a + ", b: " + b) #a: hello, b: world
이렇게 원하는 형태로 출력을 하고자 하면 번거로운 작업을 해야 한다.
만약 여기서 문자열 포매팅을 사용하면 이러한 작업들이 무척 편안해진다.
print("a: %s, b: %s" %(a, b))
그렇다면 본격적으로 문자열 포매팅을 알아보자!
👩 % 포매팅
👩💻 자료형과 형식지정 문자열
자료형 | 형식지정 문자열 |
---|---|
정수 | %d |
실수 | %f |
문자열 | %s |
8진수 | %o |
16진수 | %x |
사용법: “형식지정 문자열” % 값”
print("hello %s" % "world") #hello world
print("%s %s" %("hello", "world")) #hello world
print("%d x %d = %d" %(2, 3, 6)) #2 x 3 = 6
print("원주율: %f" % 3.141592) #원주율: 3.141592
👩💻 고급 형식지정 문자열
문자열 | 의미 |
---|---|
%0Nd | 정수를 N자리로 포매팅한다. 남는 자리는 0으로 채우게 된다. |
%.Nf | 실수를 N자리로 포매팅한다. |
%Ns | 전체 N칸을 차지하는 문자열을 나타낸다. 실제 값은 맨 뒤에 존재한다. |
%-Ns | 전체 N칸을 차지하는 문자열을 나타낸다. 실제 값은 맨 앞에 존재한다. |
print("%04d.%02d.%02d" %(2022, 6, 16)) #2022.06.16
print("원주율: %.2f" % 3.141592) #원주율: 3.14
print("%20s" % "bye") # bye
print("%-20s" % "hello") #hello
👩 format 함수
문자열 속 % 대신 {}를 사용해 문자열 포매팅을 진행한다.
print("hello {}".format("world")) #hello world
print("{} {}".format("hello", "world")) #hello world
print(" }".format("안녕")) #{} {안녕}
🙄 format 함수를 통해서는 포매팅되는 값의 순서를 지정할 수 있다.
print("{1} {0}".format("hello", "world")) #world hello
print("{b} {a}".format(a = "hello", b = "world")) #world hello
- 인덱스를 통해서 지정하거나, 원하는 값의 이름을 통해서도 순서를 지정할 수 있다.
👩💻 고급 형식지정 문자열
문자열 | 의미 |
---|---|
{:>N} | N칸으로 포매팅한다. 오른쪽 정렬로 값은 맨 오른쪽에 자리하게 되고, 나머지는 공백으로 채워진다. |
{:< N} | N칸으로 포매팅한다. 왼쪽 정렬로 값은 맨 왼쪽에 자리하게 되고, 나머지는 공백으로 채워진다. |
{:^N} | 전체 N칸으로 포매팅되며, 문자가 중앙 정렬이 된다. 나머지는 공백으로 채워진다. |
{:.Nf} | 부동소수점의 소수점이 N자리까지 표시된다. |
{:,} | 천단위마다 쉼표를 표시한다. |
- ”:‘특정문자’>N”을 할 경우, 나머지가 공백이 아닌 특정문자로 채워진다.
print("{:>4}.{:0>2}.{:0>2}".format(2022, 6, 16)) #2022.06.16
print("원주율: {:.2f}".format(3.141592)) #원주율: 3.14
print("{:*^20}".format("bye")) #********bye*********
print("{:,}".format(123456789)) #123,456,789
👩f-string
- Python 3.6 이상 버전부터 f-string을 사용할 수 있다.
- 문자열 시작에 f접두사를 붙인 후, 중괄호 안에 원하는 변수를 넣어 사용한다.
name = "두율"
print(f'안녕하세요! {name}입니다!') #안녕하세요! 두율입니다!
f-string의 경우, format 함수와 동일하게 고급 형식지정 문자열을 사용할 수 있다.
year = 2022
month = 6
day = 16
print(f"{year:>4}.{month:0>2}.{day:0>2}") #2022.06.16
print(f"{year:*^20,}") #*******2,022********
이번 게시글은 여기서 마치도록 하겠다!
🙇♀️부족한 부분이 있다면 말씀해주세요! 감사합니다!
📃 참고
- [https://datascienceschool.net/01%20python/02.04%20%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%ED%98%95%EC%8B%9D%ED%99%94.html]
- [https://hyjykelly.tistory.com/65]
- [https://blockdmask.tistory.com/424]
댓글남기기