f-string (Formatted String Literal)์ด๋?
f-string์ ๋ฌธ์์ด์ ๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋
์ฑ ์ข๊ฒ ํฌ๋งทํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
Python 3.6๋ถํฐ ๋์
๋์์ผ๋ฉฐ, ๊ธฐ์กด์ `.format()` ๋ฉ์๋๋ `%` ์ฐ์ฐ์๋ณด๋ค ๋ ์ง๊ด์ ์ด๊ณ ๋น ๋ฅธ ๋ฌธ์์ด ํฌ๋งท ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค.
1. f-string ๊ธฐ๋ณธ ๋ฌธ๋ฒ
โ ๋ฌธ๋ฒ
f"๋ฌธ์์ด {๋ณ์๋ช
} ๋๋ {ํํ์}"
- ๋ฌธ์์ด ์์ `f` ๋๋ `F` ๋ฅผ ๋ถ์ด๋ฉด f-string์ด ๋จ.
- ์ค๊ดํธ `{}` ์์ ๋ณ์๋ ํํ์์ ์ง์ ์ฝ์ ํ ์ ์์.
2. ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
โ ๋ณ์ ์ฝ์
name = "Alice"
age = 25
# f-string ์ฌ์ฉ
greeting = f"์๋
ํ์ธ์, ์ ๋ {name}์ด๊ณ , ๋์ด๋ {age}์ด์
๋๋ค."
print(greeting) # ์ถ๋ ฅ: ์๋
ํ์ธ์, ์ ๋ Alice์ด๊ณ , ๋์ด๋ 25์ด์
๋๋ค.
โ ํํ์ ์ฝ์
a = 5
b = 3
print(f"5 + 3 = {a + b}")
# ์ถ๋ ฅ: 5 + 3 = 8
print(f"10์ ์ ๊ณฑ์ {10**2}") # ์ถ๋ ฅ: 10์ ์ ๊ณฑ์ 100
3. ํ์ ์ง์ (Formatting)
f-string์์๋ `{}` ๋ด๋ถ์์ ํฌ๋งทํ ์ ์ง์ ํ ์ ์์ต๋๋ค.
โ ์ซ์ ํฌ๋งทํ
num = 1234.56789
# ์์์ 2์๋ฆฌ๊น์ง ํ์
print(f"์์์ 2์๋ฆฌ๊น์ง: {num:.2f}") # ์ถ๋ ฅ: ์์์ 2์๋ฆฌ๊น์ง: 1234.57
# ์ฒ ๋จ์ ๊ตฌ๋ถ (์ผํ)
print(f"์ฒ ๋จ์ ๊ตฌ๋ถ: {num:,.2f}") # ์ถ๋ ฅ: ์ฒ ๋จ์ ๊ตฌ๋ถ: 1,234.57
โ ์ ๋ ฌ ๋ฐ ๊ณต๋ฐฑ ์ฒ๋ฆฌ
text = "Python"
# ์ข์ธก ์ ๋ ฌ (10์นธ)
print(f"'{text:<10}'") # ์ถ๋ ฅ: 'Python '
# ์ฐ์ธก ์ ๋ ฌ (10์นธ)
print(f"'{text:>10}'") # ์ถ๋ ฅ: ' Python'
# ๊ฐ์ด๋ฐ ์ ๋ ฌ (10์นธ)
print(f"'{text:^10}'") # ์ถ๋ ฅ: ' Python '
โ 16์ง์, 8์ง์, 2์ง์ ๋ณํ
num = 255
print(f"16์ง์: {num:x}") # ์ถ๋ ฅ: 16์ง์: ff
print(f"8์ง์: {num:o}") # ์ถ๋ ฅ: 8์ง์: 377
print(f"2์ง์: {num:b}") # ์ถ๋ ฅ: 2์ง์: 11111111
4. ์ค๊ดํธ ์ถ๋ ฅ
`{}` ์์ฒด๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ์ค๊ดํธ๋ฅผ ๋ ๋ฒ ์๋๋ค.
print(f"์ค๊ดํธ ์ฌ์ฉ: {{Hello}}") # ์ถ๋ ฅ: ์ค๊ดํธ ์ฌ์ฉ: {Hello}
5. f-string์์ ํจ์ ์ฌ์ฉ
def square(x):
return x * x
num = 4
print(f"{num}์ ์ ๊ณฑ์ {square(num)}์
๋๋ค.") # ์ถ๋ ฅ: 4์ ์ ๊ณฑ์ 16์
๋๋ค.
6. f-string๊ณผ ๋์ ๋๋ฆฌ, ๋ฆฌ์คํธ ํ์ฉ
โ ๋ฆฌ์คํธ ์ฌ์ฉ
data = [10, 20, 30]
print(f"๋ฆฌ์คํธ ๊ฐ: {data[0]}, {data[1]}, {data[2]}") # ์ถ๋ ฅ: ๋ฆฌ์คํธ ๊ฐ: 10, 20, 30
โ ๋์ ๋๋ฆฌ ์ฌ์ฉ
user = {"name": "Bob", "age": 30}
print(f"์ฌ์ฉ์ ์ด๋ฆ: {user['name']}, ๋์ด: {user['age']}") # ์ถ๋ ฅ: ์ฌ์ฉ์ ์ด๋ฆ: Bob, ๋์ด: 30
7. f-string์์ = ์ฐ์ฐ์๋ก ๋๋ฒ๊น
Python 3.8๋ถํฐ๋ `=`์ ์ฌ์ฉํ์ฌ ๋ณ์๋ช ๊ณผ ๊ฐ์ ํจ๊ป ์ถ๋ ฅํ ์ ์์ต๋๋ค.
x = 10
y = 20
print(f"{x=}, {y=}, {x + y=}") # ์ถ๋ ฅ: x=10, y=20, x + y=30
8. f-string vs. ๊ธฐ์กด ๋ฌธ์์ด ํฌ๋งทํ
- ๋ฐฉ์์ฝ๋ ์์
`%` ์ฐ์ฐ์ | `"%s์ ๋์ด๋ %d์ด์ ๋๋ค." % ("Alice", 25)` |
`.format()` | `"{}์ ๋์ด๋ {}์ด์ ๋๋ค.".format("Alice", 25)` |
`f-string` | `f"{name}์ ๋์ด๋ {age}์ด์ ๋๋ค."` |
๐น f-string์ด ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ๋น ๋ฅด๋ฉฐ ๊ฐ๋ ์ฑ์ด ์ข์!
9. f-string์ ์ฅ์
- ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋จ
- ์ฑ๋ฅ์ด ์ข์ (๊ธฐ์กด `format()`๋ณด๋ค ๋น ๋ฆ)
- ํํ์, ์ฐ์ฐ, ํจ์ ํธ์ถ ๊ฐ๋ฅ
- Pythonicํ ์ฝ๋ ์คํ์ผ ์ ์ง ๊ฐ๋ฅ
10. ์ฃผ์ํ ์
๐จ f-string์ Python 3.6 ์ด์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
๐จ ๋ฉํฐ๋ผ์ธ f-string ์ฌ์ฉ ์ ๋ฐฑ์ฌ๋์(`\`)๊ฐ ํ์
text = f"์ฒซ์งธ ์ค\n\ ๋์งธ ์ค\n\ ์
์งธ ์ค"
print(text)
์ํ์คํธ๋ง ์ ๋ฆฌ:
1. `f-string`์ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ๋น ๋ฅธ ๋ฌธ์์ด ํฌ๋งท ๋ฐฉ์์ด๋ค~
2. Python 3.6 ์ด์์ ์ฌ์ฉํ๋ค๋ฉด `f-string`์ ์ ํ์ฉํด์ฃผ๋๊ฒ ์ข๋ค~
'AI ๐ค > Python ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250206] ๋งค์ง๋ฉ์๋๋~? (0) | 2025.02.06 |
---|---|
[250127] bin() ํจ์๋?? (0) | 2025.01.27 |
[250124] ๊ธฐ์ตํด, super()~!~! (0) | 2025.01.24 |
[250109] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object-Oriented Programming) ํน์ง (0) | 2025.01.09 |
[250106] ์ฌ๊ทํจ์ ์ ๋ฆฌ (0) | 2025.01.06 |