python์์๋ 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. ํต์ฌ๋ด์ฉ๐