๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Language/Python

[Python]ํŒŒ์ด์ฌ format ํ•จ์ˆ˜์™€ ํฌ๋งทํŒ…: ๋ฌธ์ž์—ด ์กฐ์ž‘์˜ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ

by YJ Dev 2024. 3. 27.
728x90
๋ฐ˜์‘ํ˜•
SMALL

python์—์„œ๋Š” format ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ํฌ๋งคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋งคํŒ…์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด์„ ํ˜•์‹์— ๋งž์ถ”๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

format


1. ๊ธฐ๋ณธ ํฌ๋งคํŒ…๐Ÿ†Ž

๊ธฐ๋ณธ ํฌ๋งคํŒ…์€ ๋ฌธ์ž์—ด์— % ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
'ํฌ๋งท ๋ฌธ์ž์—ด %์„œ์‹ ์ง€์ •์ž' % (๊ฐ’)์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ’์€ ํŠœํ”Œ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

year, month, day = 2024, 3, 20 # ์ •์ˆ˜
print('๋‚ด ์ƒ์ผ์€ %d๋…„ %d์›” %d์ผ ์ž…๋‹ˆ๋‹ค.' % (year, month, day)) # ๋‚ด ์ƒ์ผ์€ 2024๋…„ 3์›” 20์ผ ์ž…๋‹ˆ๋‹ค.


์„œ์‹ ์ง€์ •์ž๋Š” % ๋’ค์— ์–ด๋–ค ํ˜•์‹์œผ๋กœ ๊ฐ’์ด ์ถœ๋ ฅ๋ ์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์„œ์‹ ์ง€์ •์ž๋Š” ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” %s, ์‹ค์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” %.f, ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” %d ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

name = 'Alice' # ๋ฌธ์ž์—ด
print('๋‚ด ์ด๋ฆ„์€ %s ์ž…๋‹ˆ๋‹ค.' %name) # ๋‚ด ์ด๋ฆ„์€ Alice ์ž…๋‹ˆ๋‹ค.


์‹ค์ˆ˜ํ˜•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์ˆ˜ ์—ฌ์„ฏ ์งธ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ์ด ๋˜๋ฉฐ .f ์•ž์— ์ˆซ์ž๋ฅผ ๊ธฐ์ž…ํ•  ๊ฒฝ์šฐ ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์˜ ์†Œ์ˆ˜์ ๊นŒ์ง€์˜ ๋ฐ˜์˜ฌ๋ฆผ์œผ๋กœ ํ‘œํ˜„์ด ๋ฉ๋‹ˆ๋‹ค.

height = 120.65 # ์‹ค์ˆ˜
print('๋‚ด ํ‚ค๋Š” %.fcm์ž…๋‹ˆ๋‹ค.' %height) # ๋‚ด ํ‚ค๋Š” 120.65cm์ž…๋‹ˆ๋‹ค.

weight = 23.55 # ์‹ค์ˆ˜
print('๋‚ด ๋ชธ๋ฌด๊ฒŒ๋Š” %.1fkg์ž…๋‹ˆ๋‹ค.' %weight) # ๋‚ด ๋ชธ๋ฌด๊ฒŒ๋Š” 23.6kg์ž…๋‹ˆ๋‹ค.


weight์— 23.55๋ฅผ ํ• ๋‹นํ•˜์˜€๊ณ , %.1f๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ˆ˜ ์ฒซ ์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

% ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•œ ๊ธฐ๋ณธ ํฌ๋งคํŒ…๋ณด๋‹ค๋Š” format() ํ•จ์ˆ˜, f-๋ฌธ์ž์—ด์„ ํ†ตํ•œ ํฌ๋งคํŒ…์ด ๋”์šฑ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
format() ํ•จ์ˆ˜, f-๋ฌธ์ž์—ด ํฌ๋งคํŒ…์ด ๊ธฐ๋ณธ ํฌ๋งคํŒ…๋ณด๋‹ค ์ตœ์‹  ๋ฒ„์ „์˜ ๊ธฐ๋Šฅ์ด๋ฉฐ
๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ดํ•ดํ•  ๋•Œ ๋”์šฑ ์œ ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


2. ๋ฌธ์ž์—ด ํฌ๋งคํŒ…๐Ÿ” 

๋ฌธ์ž์—ด ํฌ๋งคํŒ…์€ format() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์ด๋ฉฐ,์ค‘๊ด„ํ˜ธ {}๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ž์—ด ๋’ค์— ๋งˆ์นจํ‘œ๋ฅผ ์ฐ๊ณ  format() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
'๋ฌธ์ž์—ด {} '.format(๋ณ€์ˆ˜๋ช…)

zipcode = '123456'
print('์šฐํŽธ๋ฒˆํ˜ธ : {}'.format(zipcode)) # ์šฐํŽธ๋ฒˆํ˜ธ : 123456


์ฃผ์˜ํ•  ์ ์€ ์ค‘๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜์™€ format ํ•จ์ˆ˜ ๊ด„ํ˜ธ ์•ˆ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

a = '{} {} {}'.format(1, 'ํŒŒ์ด์ฌ', True, False, 2, 'python')
print(a) # 1 ํŒŒ์ด์ฌ True


๋งŒ์•ฝ ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ {} ๊ฐœ์ˆ˜๋ณด๋‹ค format() ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉด ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ (False, 2, 'python') ์€ ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด {} ๊ฐœ์ˆ˜๊ฐ€ format() ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ณด๋‹ค ๋งŽ๋‹ค๋ฉด IndexError ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

b = '{} {} {}'.format(1, 'ํŒŒ์ด์ฌ')
print(b) # IndexError

โš ๏ธ Errorโš ๏ธIndexError : Replacement index 2 out of range for positional args tuple
(์ธ๋ฑ์Šค ์—๋Ÿฌ : ์œ„์น˜ ์ธ์ˆ˜ ํŠœํ”Œ์˜ ๋Œ€์ฒด ์ธ๋ฑ์Šค 2๊ฐ€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. )


์œ„์™€ ๊ฐ™์ด ์ธ๋ฑ์Šค ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ
๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” len() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•ด ์ค๋‹ˆ๋‹ค.

print(len('life is beautiful')) # 17

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ f-๋ฌธ์ž์—ด ํฌ๋งคํŒ…์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๊ฐ€์ง€์˜ ๊ฒฝ์šฐ์—๋Š” format() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

โ–ถ
๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๋งŽ์„ ๋•Œ

format() ํ•จ์ˆ˜๊ฐ€ ์ ํžŒ ๋ถ€๋ถ„๋งŒ ํ™•์ธํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

data = 10
line_num = 15

''' f-๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•œ ํฌ๋งคํŒ…์€
์ง๊ด€์ ์ด๋ผ ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ 
์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ์— ๋”์šฑ ํŽธ๋ฆฌํ•˜์—ฌ
format() ํ•จ์ˆ˜๋ณด๋‹ค ๋” ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ง€๊ธˆ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๋ฌธ์ž์—ด์ด ๊ธด ์ƒํ™ฉ์—์„œ
{} ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ๋Š” 
format()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ๋ณด๋‹ค๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”์ง€๊ฐ€ ๋”์šฑ ์ค‘์š”ํ•˜๋ฏ€๋กœ
๋ฐ์ดํ„ฐ๋ฅผ format()ํ•จ์ˆ˜๊ฐ€ ์ ํžŒ {}๋ฒˆ์งธ ์ค„ ๋งŒ ๋ชจ์•„์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š”
format()ํ•จ์ˆ˜๊ฐ€ ๋”์šฑ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
'''.format(data, line_num)


โ–ถ
๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์„œ ์‚ฌ์šฉํ•  ๋•Œ
๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์•ผ ํ•  ๋•Œ f-๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•˜๋ฉด ์ผ์ผ์ด ๋ฆฌ์ŠคํŠธ์— ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

student = ['Alice', 15, 'W', '3A', 7]
f''' ์ด๋ฆ„ : {student[0]}
๋‚˜์ด : {student[1]}
์„ฑ๋ณ„ : {student[2]}
๊ต์‹ค : {student[3]}
๋ฒˆํ˜ธ : {student[4]}'''
print('์ด๋ฆ„ : Alice\n๋‚˜์ด : 15\n์„ฑ๋ณ„ : W\n๊ต์‹ค : 3A\n๋ฒˆํ˜ธ : 7')


ํ•˜์ง€๋งŒ format() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌ์ŠคํŠธ ์š”์†Œ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

student = ['Alice', 15, 'W', '3A', 7]
''' ์ด๋ฆ„ : {}
๋‚˜์ด : {}
์„ฑ๋ณ„ : {}
๊ต์‹ค : {}
๋ฒˆํ˜ธ : {}'''.format(*student)
print('์ด๋ฆ„ : Alice\n๋‚˜์ด : 15\n์„ฑ๋ณ„ : W\n๊ต์‹ค : 3A\n๋ฒˆํ˜ธ : 7')


๐Ÿ™Œ ์—ฌ๊ธฐ์„œ ์ž ๊น!
์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ž€?
๋ฆฌ์ŠคํŠธ ์•ž์— *๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฆฌ์ŠคํŠธ ๋‚ด์šฉ์„ ์ „๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์œ„ ์ฝ”๋“œ์—์„œ๋Š” *student๋Š” student ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ 1๋ฒˆ ๋‚˜ํƒ€๋ƒ„.
*student, *student ์ผ ๋•Œ๋Š” student ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ 2๋ฒˆ ์ „๊ฐœ๋จ.


3. f-๋ฌธ์ž์—ด ํฌ๋งคํŒ…๐Ÿ‘

f-๋ฌธ์ž์—ด ํฌ๋งคํŒ…์€ format() ํ•จ์ˆ˜๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ f'๋ฌธ์ž์—ด{๋ณ€์ˆ˜๋ช…}๋ฌธ์ž์—ด'์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

name = 'Alice'
age = 16
print(f'๋‚˜๋Š”{name}์ž…๋‹ˆ๋‹ค. ๋‚˜์ด๋Š” {age}์‚ด ์ž…๋‹ˆ๋‹ค.') # ๋‚˜๋Š” Alice์ž…๋‹ˆ๋‹ค. ๋‚˜์ด๋Š” 16์‚ด ์ž…๋‹ˆ๋‹ค.
print(f'๋‚˜๋Š” ๋‚ด๋…„์ด๋ฉด {age + 1}์‚ด์ด ๋ฉ๋‹ˆ๋‹ค.') # ๋‚˜๋Š” ๋‚ด๋…„์ด๋ฉด 17์‚ด์ด ๋ฉ๋‹ˆ๋‹ค.

4. format() ํ•จ์ˆ˜์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๐Ÿ”‘

โ–ถ ์ธ๋ฑ์Šค : ์œ„์น˜ ์ง€์ •์ž

tel1, tel2, tel3 = '02', '123', '4567'
print('์—ฐ๋ฝ์ฒ˜ : {0}-{1}-{2}'.format(tel1, tel2, tel3)) # ์—ฐ๋ฝ์ฒ˜ : 02-123-4567


โ–ถ
ํ˜•์‹ ์ง€์ •์ž

# ์‹ค์ˆ˜
b = 3.141592
print('{:.3f}'.format(b)) # 3.142 => ์†Œ์ˆ˜ ์…‹ ์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผ

# ์ •์ˆ˜
a = 15
print('{:d}'.format(a)) # 15


โ–ถ
๋ฌธ์ž์—ด์˜ ์ •๋ ฌ
{0:<10} : ์ „์ฒด 10์นธ, ์™ผ์ชฝ ์ •๋ ฌ
{0:>10} : ์ „์ฒด 10์นธ, ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ
{0:^10} : ์ „์ฒด 10์นธ, ๊ฐ€์šด๋ฐ ์ •๋ ฌ

print('{0:<10}'.format('Hi')) # Hi
print('{0:>10}'.format('Hi')) # Hi
print('{0:^10}'.format('Hi')) # Hi


{:=^8} : ์ „์ฒด 8์นธ, ๊ณต๋ฐฑ์„ =๋กœ ํ‘œํ˜„, ๊ฐ€์šด๋ฐ ์ •๋ ฌ

{:!<8} : ์ „์ฒด 8์นธ, ๊ณต๋ฐฑ์„ !๋กœ ํ‘œํ˜„, ์™ผ์ชฝ ์ •๋ ฌ

print('{:=^8}'.format('python')) # =python= 
print('{:!<8}'.format('python')) # python!!

5. ํ•ต์‹ฌ๋‚ด์šฉ๐Ÿ‘€

ํฌ๋งคํŒ…

728x90
๋ฐ˜์‘ํ˜•