Python/Python Basic Lesson

Python Programming Basic - Append. 문자열 포맷팅

Pydole 2020. 3. 2. 20:42

 

변수값을 문자열을 표현하기 위한 기호

 

포맷 설명
%s 문자열에 대응
%d 실수에 대응
%f 정수에 대응

 

 


 

Example. 문자열 대응

 

s = ['a', 'b', 'c']

for i in s:
    print('문자는 %s' %i)   # 문자열 포맷(%s)




문자는 a
문자는 b
문자는 c

 

 

 

 

Example. 실수 대응

 

s = [1.2, 2,5, 3.9]

for i in s:
    print('실수는 %f' %i)   # 실수형 포맷(%s)




실수는 1.200000
실수는 2.000000
실수는 5.000000
실수는 3.900000

 

s = [1.2, 2,5, 3.9]

for i in s:
    print('문자는 %.2f' %i)   # 소수 2번째 표현 실수형 포맷(%s)




실수는 1.20
실수는 2.00
실수는 5.00
실수는 3.90

 

 

 

 

Example. 정수 대응

 

intData = [2, 3, 4, 5]

for i in s:
    print('숫자는 %d' %i)   # 소수 2번째 표현 실수형 포맷(%s)




숫자는 2
숫자는 3
숫자는 4
숫자는 5

 

 

 

문자열에서 % 기호를 출력하고 싶을 때

 

percent = 2
print('올해 한국 경제는 %d % 입니다.' %percent)


# TypeError: 발생
TypeError: not enough arguments for format string



# %%로 % 문자열을 표기
print('올해 한국 경제는 %d %% 입니다.' %percent)



올해 한국 경제는 2 % 입니다.

 

 

 

2개 이상의 변수를 출력하고 싶을 때

 

dic = {'a':1, 'b':2, 'c':3}

for i, j in dic.items():
    print('문자는 %s %s' %(i,j) )



문자는 a
문자는 b
문자는 1
문자는 1.3

 

 

 

연산이나 문자열을 합친 결과를 출력하고 싶을 때

 

dic = { 1:2, 3:4, 5:6 }

for i, j in dic.items():
    print('합은 %d' %(i+j) )   # 산술
    


합은 3
합은 7
합은 11




dic = { 'a':'b', 'c':'d', 'e':'f' }

for i, j in dic.items():
    print('문자 합차기 %s' %(i+j) )    # 문자 합치기
    



문자 합차기 ab
문자 합차기 cd
문자 합차기 ef

 


 

.format을 이용한 방식

 


* 데이터 타입을 지정할 필요 없음

* .format 되는 요소의 출력을 늘리거나, 줄이거나, 순서를 바꿀 수 있는 등 유연하게 하게 출력 가능

 

 


lst = [ 1, 'a', 1.1 , [1, 2] ]



# lst의 모든 요소 출력

print("{0}, {1}, {2}, {3}".format(lst[0],lst[1],lst[2],lst[3]))


1, a, 1.1, [1, 2]


------------------------------------------------------------------

# {1} 요소는 빼고 출력

print("{0}, {2}, {3}".format(lst[0],lst[1],lst[2],lst[3]))


1, 1.1, [1, 2]


------------------------------------------------------------------

# {0}과 {1} 순서 바꿔서 출력

print("{1}, {0}, {2}, {3} ".format(lst[0],lst[1],lst[2],lst[3]))


1, a, 1.1, [1, 2]


------------------------------------------------------------------

# {2}과 {3} 순서 바꿔서 출력


print("{1}, {0}, {2}, {3} ".format(lst[0],lst[1],lst[2],lst[3]))


a, 1, 1.1, [1, 2]


------------------------------------------------------------------

# {3}과 {0} 추가


print("{1}, {0}, {3}, {2}, {3}, {0} ".format(lst[0],lst[1],lst[2],lst[3]))

a, 1, [1, 2], 1.1, [1, 2], 1 

 

 

왼쪽, 오른쪽, 가운데 정렬

 

# left

s = 'python'

print('"{:<10}"'.format(s))

"python    "

-----------------------------------------

# right

s = 'python'

print('"{:>10}"'.format(s))


"    python"


-----------------------------------------

# center

s = 'python'

print('"{:^10}"'.format(s))

"  python  "

 

 

 

 

인덱스를 이용한 할당

 

tup = (10, 20, 30)

print('X: {0[0]} Y: {0[1]}  Z: {0[2]}'.format(tup))


X: 10 Y: 20  Z: 30

 

 

 

숫자 천 단위마다 콤마로 구분( , ) 

 

value = 12345678
'{:,}'.format(value)

'12,345,678'

 

 

 

퍼센트 계산

 

A = 10
B = 20

print('tax is : {:.2%}'.format(A / B))

tax is : 50.00%

 

 

 

날짜타입 출력

 

from datetime import datetime

day = datetime(2020, 5, 25, 0, 0, 0)

print('{:%Y-%m-%d %H:%M:%S}'.format(day))


2020-05-25 00:00:00