내가 한 노력들

[ python ] format() 사용법 본문

IT 공부/python

[ python ] format() 사용법

JONGI-N CHOI 2020. 11. 20. 17:38

포메팅

문자열 중간 중간에 특정 변수의 값을 넣어주기 위해서 사용하는 것

 

 

 

{인덱스0}, {인덱스1}'.format(값0, 값1)

a = 2
b = 3
 
s = '구구단 {0} x {1} = {2}'.format(a, b, a * b)
print(s)

{0}는 format의 첫번째 인수인 a

{1}는 두번째 인수인 b

{2}는 a * b

문자열 정렬하기

 

 

# 인덱스를 입력하지 않으면?
s4 = 'name : {}, city : {}'.format('BlockDMask', 'seoul')
print(s4)
 
 
# 인덱스 순서가 바뀌면?
s5 = 'song1 : {1}, song2 : {0}'.format('nunu nana', 'ice cream')
print(s5)
 
 
# 인덱스를 중복해서 입력하면?
s6 = 'test1 : {0}, test2 : {1}, test3 : {0}'.format('인덱스0','인덱스1')
print(s6)

 

 

 

# 나와라 중괄호
s7 = 'Format example. {{}}, {}'.format('test')
print(s7)
 
 
# 중괄호로 겹쳐진 인자값
s8 = 'This is value {{{0}}}'.format(1212)
print(s8)

 

 

문자열에 공백 or 공백이 아닌 값 채우기

# 왼쪽 정렬
s9 = 'this is {0:<10} | done {1:<5} |'.format('left', 'a')
print(s9)
 
 
# 오른쪽 정렬
s10 = 'this is {0:>10} | done {1:>5} |'.format('right', 'b')
print(s10)
 
 
# 가운데 정렬
s11 = 'this is {0:^10} | done {1:^5} |'.format('center', 'c')
print(s11)

s9, s10, s11 을 보면 딱 좌 우 가운데 정렬이 되고 나머지 빈 칸은 공백으로 처리 되는 것을 볼 수 있습니다.
왼쪽 정렬에는 기호 < 를 사용하고, 오른쪽 정렬에는 >, 가운데 정렬에는 ^를 사용합니다.
기호 뒤에 나오는 숫자는 자릿수를 말합니다. 

즉 아래와 같습니다.
{0:<10} 이 뜻하는 것은 {0} 값을 ":<10" 10자리로 표현할건데 왼쪽 정렬을 할 것이다. 라는 뜻 이고
{1:>5} 가 뜻하는 것은 {1} 값을 ":>5" 5자리로 표현할건데 오른쪽 정렬을 할 것이다. 입니다.

 

 

# 왼쪽 정렬
s12 = 'this is {0:-<10} | done {1:o<5} |'.format('left', 'a')
print(s12)
 
 
# 오른쪽 정렬
s13 = 'this is {0:+>10} | done {1:0>5} |'.format('right', 'b')
print(s13)
 
 
# 가운데 정렬
s14 = 'this is {0:.^10} | done {1:@^5} |'.format('center', 'c')
print(s14)

 

자리수와 소수점 표현하기

# 정수 N자리
s15 = '정수 3자리 : {0:03d}, {1:03d}'.format(12345, 12)
print(s15)
 
 
# 소수점 N자리
s16 = '아래 2자리 : {0:0.2f}, 아래 5자리 : {1:0.5f}'.format(123.1234567, 3.14)
print(s16)

 

 

 

# 구구단 표시 (2단과 3단만 표시)
for a in range(2, 4):       # 앞에 표시하는 단 수 (2단, 3단)
    for b in range(1, 10):  # 뒤에 곱하는 수
        print('{0} x {1} = {2:2}'.format(a, b, a*b))