ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ๋ชจ๋ ๊ฒ์ ์ฝ๊ฒ ๋ฐฐ์๋ณด์ธ์! ํ์ด์ฌ ๋ฌธ์์ด ์์ฑ, ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ, ์ฃผ์ ๋ฉ์๋๊น์ง ํ์ ํ์ด์ฌ ์์ ์ ํจ๊ป ์ด๋ณด์๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ ๋ฆฌํ์ต๋๋ค.
์๋ก : ์ฝ๋ฉ์ ๊ธฐ๋ณธ ์ฌ๋ฃ, ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ์๋ฒฝ ์ดํดํ๊ธฐ
ํ๋ก๊ทธ๋๋ฐ์ ์ฒ์ ์์ํ ๋ ๊ฐ์ฅ ๋จผ์ ์ ํ๊ณ , ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋ ์๋ฃํ์ด ๋ฌด์์ผ๊น์? ๋ฐ๋ก **๋ฌธ์์ด(String)**์ ๋๋ค. ํ์ด์ฌ์์ ๋ฌธ์์ด์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ํ์์ ์ธ ์์์ด๋ฉฐ, ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ๋ ๋ฑ ์ฝ๋ฉ์ ๊ฑฐ์ ๋ชจ๋ ์์ญ์์ ํ์ฉ๋ฉ๋๋ค.
ํ์ง๋ง ๋จ์ํด ๋ณด์ด๋ ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ์์ง ๋ชปํ๋ฉด ํจ์จ์ ์ธ ์ฝ๋ ์์ฑ์ด ์ด๋ ต์ต๋๋ค. ๋ฌธ์์ด์ ์ด๋ป๊ฒ ๋ง๋ค๊ณ , ์ํ๋ ๋ถ๋ถ๋ง ์ถ์ถํ๋ฉฐ, ๋ด์ฉ์ ์ด๋ป๊ฒ ์์ ํ๊ณ ์กฐ์ํ๋์ง๋ ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ๊ธฐ ์ค์ ๊ธฐ๋ณธ๊ธฐ์ ๋๋ค.
์ด ๊ธ์ ํ๋ก๊ทธ๋๋ฐ ์ด๋ณด์๋ถํฐ ํ์ด์ฌ์ ๊น์ด ์๊ฒ ๊ณต๋ถํ๊ณ ์ถ์ ๋ถ๋ค๊น์ง ๋ชจ๋ ๋ง์กฑํ ์ ์๋๋ก, ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ํต์ฌ ๋ด์ฉ์ ์น๊ทผํ๋ฉด์๋ ์ ๋ฌธ์ ์ธ ํค์ผ๋ก ์์ธํ ์ค๋ช
ํฉ๋๋ค. ์ง๊ธ๋ถํฐ ํ์ด์ฌ ๋ฌธ์์ด์ ๋ชจ๋ ๊ฒ์ ์์ ์ ํจ๊ป ๋ง์คํฐํด ๋ด
์๋ค! 
ํ์ด์ฌ ๋ฌธ์์ด์ ์์ฑ ๋ฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ: ํ๋ฐ์ดํ์ ์๋ฐ์ดํ
ํ์ด์ฌ ๋ฌธ์์ด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๋ฐ๋ก ํ ์คํธ๋ฅผ ๋ฐ์ดํ๋ก ๊ฐ์ธ๋ ๊ฒ์ ๋๋ค. ํ์ด์ฌ์์๋ ํ๋ฐ์ดํ(' ')์ ์๋ฐ์ดํ(" ") ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ค ๊ฒ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์์ ์ฐจ์ด๋ ์์ต๋๋ค.
# ํ๋ฐ์ดํ ์ฌ์ฉ ์์
greeting = '์๋
ํ์ธ์, ํ์ด์ฌ!'
print(greeting)
# ์๋ฐ์ดํ ์ฌ์ฉ ์์
name = "SEO ์ ๋ฌธ๊ฐ"
print(name)
ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ๋ฌธ๋ฒ์์ ์ค์ํ ๊ฒ์, ๋ง์ฝ ๋ฌธ์์ด ๋ด์ฉ ์์ ๋ฐ์ดํ๋ฅผ ํฌํจํด์ผ ํ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋๋ ๋ฐ๊นฅ์ชฝ ๋ฐ์ดํ์ ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, **์ญ์ฌ๋์()**๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋ฌธ์๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
๋ฐ์ดํ ํผ์ฉ ์์ :
Pythonmixed_quote = "๊ทธ๋ 'ํ์ด์ฌ'์ ๊ณต๋ถํ๋ค." print(mixed_quote)์ด์ค์ผ์ดํ ๋ฌธ์ ์์ :
Pythonescaped_quote = 'ํ์ด์ฌ์ด ๋งํ์ต๋๋ค: "Hello World!"' print(escaped_quote)
๋ํ, ์ฌ๋ฌ ์ค์ ํ ์คํธ๋ฅผ ํ ๋ฒ์ ์ ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ์ผ์ค ๋ฐ์ดํ(''' ''') ๋๋ **(""" """)**๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๋ฌธ์ ๋ฌธ์์ด(Docstring)์ ์์ฑํ ๋๋ ์ ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ์์ฑ๋ ํ์ด์ฌ ๋ฌธ์์ด์ ๋ด๋ถ์ ์ผ๋ก **์ ๋์ฝ๋(Unicode)**๋ก ์ ์ฅ๋์ด ์ ์ธ๊ณ์ ๋ค์ํ ๋ฌธ์๋ฅผ ์ง์ํฉ๋๋ค.
๋ฐ์ดํฐ ์ถ์ถ์ ํต์ฌ! ํ์ด์ฌ ๋ฌธ์์ด ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ ์์ ํฌํจ
ํ์ด์ฌ ๋ฌธ์์ด์ ์ผ์ข ์ ์ํ์ค(Sequence) ์๋ฃํ์ ๋๋ค. ์ฆ, ๋ฌธ์ ํ๋ํ๋๊ฐ ์์๋ฅผ ๊ฐ์ง๊ณ ๋ฐฐ์ด๋์ด ์๋ค๋ ๋ป์ ๋๋ค. ํน์ ์์น์ ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ธ๋ฑ์ฑ(Indexing), ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ์๋ผ๋ด๋ ๊ฒ์ **์ฌ๋ผ์ด์ฑ(Slicing)**์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ๊ธฐ๋ฅ๋ค์ ํ์ด์ฌ ๋ฌธ์์ด ์กฐ์์ ํต์ฌ์ด๋ฉฐ, ์ฝ๋ฉ ํ ์คํธ์์๋ ์์ฃผ ๋ฑ์ฅํฉ๋๋ค.
์ธ๋ฑ์ฑ (Indexing):
ํ์ด์ฌ์ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํฉ๋๋ค. (์ฒซ ๋ฒ์งธ ๋ฌธ์๋ ์ธ๋ฑ์ค 0)
์์ ์ธ๋ฑ์ค๋ ๋ฌธ์์ด์ ๋ค์์๋ถํฐ ์นด์ดํธํฉ๋๋ค. (-1์ ๋ง์ง๋ง ๋ฌธ์)
text = "Python"
print(text[0]) # ๊ฒฐ๊ณผ: P (์ฒซ ๋ฒ์งธ ๋ฌธ์)
print(text[-1]) # ๊ฒฐ๊ณผ: n (๋ง์ง๋ง ๋ฌธ์)
์ฌ๋ผ์ด์ฑ (Slicing):
์ฌ๋ผ์ด์ฑ์ [์์_์ธ๋ฑ์ค:๋_์ธ๋ฑ์ค] ํ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ํ ๊ท์น์ ๋_์ธ๋ฑ์ค์ ํด๋นํ๋ ๋ฌธ์๋ ํฌํจ๋์ง ์๋๋ค๋ ์ ์
๋๋ค.
[์์:๋]: ์์๋ถํฐ ๋ ์ง์ ๊น์ง[:๋]: ์ฒ์๋ถํฐ ๋ ์ง์ ๊น์ง[์์:]: ์์๋ถํฐ ๋๊น์ง
data = "20241129_data"
# ๋ ์ง ๋ถ๋ถ๋ง ์ถ์ถํ๋ ํ์ด์ฌ ์์
date_part = data[0:8]
print(date_part) # ๊ฒฐ๊ณผ: 20241129
# ๋ฐ์ดํฐ ๋ถ๋ถ๋ง ์ถ์ถํ๋ ํ์ด์ฌ ์์
file_name = data[9:]
print(file_name) # ๊ฒฐ๊ณผ: data
์ด์ฒ๋ผ ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ์ ๋ง์คํฐํ๋ฉด ์ด๋ค ํ์ด์ฌ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์ถ์ถํ ์ ์์ต๋๋ค.
๋ฌธ์์ด ์กฐ์์ ๋ฌ์ธ! ํ์ด์ฌ ๋ฌธ์์ด์ ์ฃผ์ ๋ฉ์๋ ์์ ํฌํจ
ํ์ด์ฌ ๋ฌธ์์ด์ ๋ถ๋ณ(Immutable) ๊ฐ์ฒด์ ๋๋ค. ์ฆ, ํ ๋ฒ ์์ฑ๋๋ฉด ๊ทธ ๋ด์ฉ์ ์ง์ ์์ ํ ์ ์์ต๋๋ค. ๋์ , ๋ฌธ์์ด์ ์กฐ์ํ๊ณ ๋ณํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ **๋ฉ์๋(Method)**๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋ฉ์๋๋ค์ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
| ๋ฉ์๋ | ๊ธฐ๋ฅ | ํ์ด์ฌ ์์ | ๊ฒฐ๊ณผ |
split() | ๋ฌธ์์ด์ ํน์ ๊ตฌ๋ถ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๋ฆฌ์คํธ๋ก ๋ฐํ | 'A,B,C'.split(',') | ['A', 'B', 'C'] |
join() | ๋ฆฌ์คํธ์ ์์๋ค์ ๋ฌธ์์ด ๊ตฌ๋ถ์๋ก ์ฐ๊ฒฐ | '-'.join(['A', 'B']) | 'A-B' |
replace() | ํน์ ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋์ฒด | 'Hello'.replace('l', 'x') | 'Hexxo' |
strip() | ๋ฌธ์์ด ์ ๋์ ๊ณต๋ฐฑ์ด๋ ํน์ ๋ฌธ์๋ฅผ ์ ๊ฑฐ | ' Hello '.strip() | 'Hello' |
upper() / lower() | ๋ฌธ์์ด์ ๋๋ฌธ์/์๋ฌธ์๋ก ๋ณํ | 'PaYtHoN'.upper() | 'PYTHON' |
์ด ์ธ์๋ ๋ฌธ์์ด์ด ํน์ ๋ฌธ์๋ก ์์ํ๋์ง ํ์ธํ๋ startswith(), ํน์ ๋ฌธ์์ด์ ํฌํจํ๋์ง ํ์ธํ๋ in ์ฐ์ฐ์ ๋ฑ์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
# replace์ split์ ํ์ฉํ ํ์ด์ฌ ์์
raw_data = "์ํ๋ช
=๋
ธํธ๋ถ;๊ฐ๊ฒฉ=1500000"
cleaned_data = raw_data.replace(';', ',').split(',')
print(cleaned_data) # ๊ฒฐ๊ณผ: ['์ํ๋ช
=๋
ธํธ๋ถ', '๊ฐ๊ฒฉ=1500000']
์ด๋ฌํ ๋ฉ์๋๋ค์ ๋ฅ์ํ๊ฒ ์ฌ์ฉํ๋ฉด, ๋ณต์กํ ํ ์คํธ ๋ฐ์ดํฐ๋ ์ํ๋ ํํ๋ก ์ฝ๊ฒ ๊ฐ๊ณตํ ์ ์์ต๋๋ค.
๊น๋ํ ์ถ๋ ฅ์ ๋น๋ฐ! ํ์ด์ฌ ๋ฌธ์์ด ํฌ๋งคํ
(Formatting)
ํ์ด์ฌ ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋, ๋ณ์์ ๊ฐ์ ๋ฌธ์์ด ์์ ์ฝ์ ํ๊ฑฐ๋ ํน์ ํ์์ผ๋ก ์ถ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฅผ ๋ฌธ์์ด ํฌ๋งคํ ์ด๋ผ๊ณ ํ๋ฉฐ, ํ์ด์ฌ์ ์ฌ๋ฌ ๊ฐ์ง ํธ๋ฆฌํ ํฌ๋งคํ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค.
๊ฐ์ฅ ํ๋์ ์ด๊ณ ๊ถ์ฅ๋๋ ๋ฐฉ์์ ๋ฐ๋ก **f-string (Formatted String Literal)**์ ๋๋ค.
f-string ์์ :
Pythonscore = 95 name = "๊น์ฒ ์" # f-string ์ฌ์ฉ: ๋ฌธ์์ด ์์ f๋ฅผ ๋ถ์ด๊ณ ๋ณ์๋ฅผ ์ค๊ดํธ{} ์์ ๋ฃ์ต๋๋ค. message = f"ํ์ {name}์ ์ต์ข ์ ์๋ {score}์ ์ ๋๋ค." print(message)
f-string์ ์ฅ์ ์ ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ์ฑ์ด ๋๋ค๋ ์ ์ ๋๋ค. ๋ํ, ์ค๊ดํธ ์์ ๊ฐ๋จํ ์ฐ์ฐ์ด๋ ํจ์ ํธ์ถ๋ ๊ฐ๋ฅํ์ฌ ๋งค์ฐ ์ ์ฐํฉ๋๋ค.
# f-string๊ณผ ๋ฉ์๋๋ฅผ ๊ฒฐํฉํ ํ์ด์ฌ ์์
item = "apple"
price = 1500
output = f"๊ตฌ๋งคํ ์ํ: {item.upper()}, ์ด ๊ฐ๊ฒฉ: {price * 3}์"
print(output)
์ด ์ธ์๋ % ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ํต์ ์ธ ๋ฐฉ์์ด๋, format() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์๋ ์์ง๋ง, ์ต์ ํ์ด์ฌ ์ฝ๋์์๋ ๊ฐ๋
์ฑ์ด ๋ฐ์ด๋ f-string ์ฌ์ฉ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค.
ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ๋ง์คํฐํ๊ณ ์ฝ๋ฉ ์ค๋ ฅ UP!
์ง๊ธ๊น์ง ํ์ด์ฌ ๋ฌธ์์ด? ์์ ํฌํจ ์์ฑ๋ถํฐ ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ, ์ฃผ์ ๋ฉ์๋, ๊ทธ๋ฆฌ๊ณ ์ต์ ํฌ๋งคํ ๊ธฐ๋ฒ์ธ f-string๊น์ง ํ์ด์ฌ ๋ฌธ์์ด์ ๋ชจ๋ ํต์ฌ ์์๋ฅผ ์์ธํ ์ดํด๋ณด์์ต๋๋ค.
ํ์ด์ฌ ๋ฌธ์์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์ฒ๋ฆฌํ๊ณ , ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ ๊ณผ์ ์์ ํ์์ ์ธ ๋๊ตฌ์
๋๋ค. ์ด ๊ธ์์ ๋ค๋ฃฌ ํ์ด์ฌ ์์ ๋ค์ ์ง์ ๋ฐ๋ผ ํด๋ณด๊ณ ์ต์ํด์ง๋ค๋ฉด, ์ฌ๋ฌ๋ถ์ ํ์ด์ฌ ์ฝ๋ฉ ์ค๋ ฅ์ ํ ๋จ๊ณ ๋์ฝํ ๊ฒ์
๋๋ค. ๋ฌธ์์ด ์กฐ์ ๋ฅ๋ ฅ์ ๊ณง ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์
๋๋ค! 
CTA: ํ์ด์ฌ ๋ฌธ์์ด์ ๋ํด ๋ ๊ถ๊ธํ ์ ์ด ์๊ฑฐ๋, ์ถ๊ฐ์ ์ผ๋ก ์๊ณ ์ถ์ ํ์ด์ฌ ์์ ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ์ง๋ฌธํด ์ฃผ์ธ์! ๋ค์ ๊ธ์์๋ ํ์ด์ฌ ๋ฆฌ์คํธ์ ๋์
๋๋ฆฌ ์๋ฃํ์ ๋ํด ์ฌ๋ ์๊ฒ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
FAQ (์์ฃผ ๋ฌป๋ ์ง๋ฌธ)
Q1: ํ์ด์ฌ ๋ฌธ์์ด์ ์ '๋ถ๋ณ(Immutable)' ๊ฐ์ฒด์ธ๊ฐ์? ๋ด์ฉ์ ์์ ํ ์ ์๋์?
A: ํ์ด์ฌ ๋ฌธ์์ด์ด ๋ถ๋ณ์ด๋ผ๋ ๊ฒ์, ํ ๋ฒ ์์ฑ๋ ๋ฌธ์์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ด์ฉ์ ์ง์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์๋ฏธ์
๋๋ค. ๋ง์ฝ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ๋ฉ์๋(์: replace())๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ธฐ์กด ๋ฌธ์์ด์ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์๋ก์ด ๋ฌธ์์ด์ ๋ง๋ค์ด์ ๋ฐํํฉ๋๋ค. ์ด๋ ๋ฌธ์์ด์ ์์ ์ฑ๊ณผ ํจ์จ์ฑ์ ์ํ ํ์ด์ฌ์ ์ค๊ณ ๋ฐฉ์์
๋๋ค.
Q2: '์ธ๋ฑ์ฑ'๊ณผ '์ฌ๋ผ์ด์ฑ'์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
A: ์ธ๋ฑ์ฑ์ ๋ฌธ์์ด์์ **๋จ ํ๋์ ๋ฌธ์(Character)**๋ฅผ ์์น๋ฅผ ์ง์ ํ์ฌ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๊ณ , ์ฌ๋ผ์ด์ฑ์ ๋ฌธ์์ด์์ ๋ถ๋ถ์ ์ธ ๋ฌธ์์ด(Substring), ์ฆ ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์๋ผ๋ด์ด ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. ์ธ๋ฑ์ฑ ๊ฒฐ๊ณผ๋ ํ๋์ ๋ฌธ์, ์ฌ๋ผ์ด์ฑ ๊ฒฐ๊ณผ๋ ๋ฌธ์์ด(String) ํ์ ์ผ๋ก ๋์ต๋๋ค.
Q3: ํ์ด์ฌ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ํ์ธํ๋ ํ์ด์ฌ ์์ ํจ์๋ ๋ฌด์์ธ๊ฐ์?
A: len() ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. len(๋ฌธ์์ด_๋ณ์) ํ์์ผ๋ก ์ฌ์ฉํ๋ฉฐ, ๋ฌธ์์ด์ ํฌํจ๋ ๋ฌธ์์ ๊ฐ์๋ฅผ ์ ์ ํํ๋ก ๋ฐํํฉ๋๋ค.
text = "ABCDE"
length = len(text)
print(length) # ๊ฒฐ๊ณผ: 5
๋๊ธ
๋๊ธ ์ฐ๊ธฐ