Skip to content

Latest commit

ย 

History

History

P_07_StringMethods

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 

README.md

Python ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ (String Methods) ์™„๋ฒฝ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

  1. ๋ฌธ์ž์—ด ๊ธฐ๋ณธ ํŠน์„ฑ
  2. ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜ ๋ฉ”์„œ๋“œ
  3. ๊ณต๋ฐฑ ์ œ๊ฑฐ ๋ฉ”์„œ๋“œ
  4. ๋ฌธ์ž์—ด ์น˜ํ™˜ ๋ฉ”์„œ๋“œ
  5. ๋ถ„๋ฆฌ์™€ ๊ฒฐํ•ฉ ๋ฉ”์„œ๋“œ
  6. ๊ฒ€์ƒ‰ ๋ฉ”์„œ๋“œ
  7. ์‹œ์ž‘/๋ ํ™•์ธ ๋ฉ”์„œ๋“œ
  8. ์œ ๋‹ˆ์ฝ”๋“œ ํ•จ์ˆ˜
  9. ๋ฌธ์ž์—ด ๋“ฑ์žฅ ํšŸ์ˆ˜ ๊ณ„์‚ฐ
  10. ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹
  11. ๊ธฐํƒ€ ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ

1. ๋ฌธ์ž์—ด ๊ธฐ๋ณธ ํŠน์„ฑ

1.1 String ํƒ€์ž…์˜ ํŠน์ง•

  • Immutable (๋ถˆ๋ณ€): ๋ฌธ์ž์—ด์€ ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
  • ์Šฌ๋ผ์ด์‹ฑ ๋ฐ ์ธ๋ฑ์‹ฑ ๊ฐ€๋Šฅ
  • ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„
# ๋ฌธ์ž์—ด์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
mystr = "hello Python"
mystr[0] = 'Y'  # TypeError: 'str' object does not support item assignment

# ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ
print(mystr[-4])      # ๋’ค์—์„œ 4๋ฒˆ์งธ ๋ฌธ์ž: 't'
print(mystr[::2])     # 2์นธ์”ฉ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ์ถœ๋ ฅ: 'hlopto'
print(mystr[::-1])    # ์—ญ์ˆœ ์ถœ๋ ฅ: 'nohtyP olleh'

# ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„
print("P" in mystr)   # False (๋Œ€๋ฌธ์ž P)
print("p" in mystr)   # True (์†Œ๋ฌธ์ž p๊ฐ€ Python์— ์žˆ์Œ)

1.2 ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ์ƒ์„ฑ ๋ฐฉ๋ฒ•

# 1. ์Œ๋”ฐ์˜ดํ‘œ (double quotation)
print("Python is fun")

# 2. ํ™€๋”ฐ์˜ดํ‘œ (single quotation)
print('Python is fun')

# 3. ์Œ๋”ฐ์˜ดํ‘œ 3๊ฐœ (์—ฌ๋Ÿฌ ์ค„ ๋ฌธ์ž์—ด)
print("""Python is fun
and easy to learn""")

# 4. ํ™€๋”ฐ์˜ดํ‘œ 3๊ฐœ (์—ฌ๋Ÿฌ ์ค„ ๋ฌธ์ž์—ด)
print('''Python is fun
and easy to learn''')

2. ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช… ๋ฐ˜ํ™˜๊ฐ’
upper() ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ์ƒˆ ๋ฌธ์ž์—ด
lower() ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ์ƒˆ ๋ฌธ์ž์—ด
capitalize() ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ์ƒˆ ๋ฌธ์ž์—ด
title() ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ์ƒˆ ๋ฌธ์ž์—ด
swapcase() ๋Œ€์†Œ๋ฌธ์ž ๋ฐ˜์ „ ์ƒˆ ๋ฌธ์ž์—ด

2.1 upper()

๋ฌธ์ž์—ด์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

str1 = "Apple"
print(str1.upper())
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'APPLE'

# ์›๋ณธ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ (immutable)
print(str1)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Apple'

2.2 lower()

๋ฌธ์ž์—ด์„ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

str1 = "Apple"
print(str1.lower())
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'apple'

2.3 capitalize(), title(), swapcase()

text = "hello WORLD python"

print(text.capitalize())  # ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž: 'Hello world python'
print(text.title())       # ๊ฐ ๋‹จ์–ด ์ฒซ ๊ธ€์ž ๋Œ€๋ฌธ์ž: 'Hello World Python'
print(text.swapcase())    # ๋Œ€์†Œ๋ฌธ์ž ๋ฐ˜์ „: 'HELLO world PYTHON'

3. ๊ณต๋ฐฑ ์ œ๊ฑฐ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช…
strip() ์ขŒ์šฐ ๊ณต๋ฐฑ ์ œ๊ฑฐ
lstrip() ์™ผ์ชฝ ๊ณต๋ฐฑ๋งŒ ์ œ๊ฑฐ
rstrip() ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ๋งŒ ์ œ๊ฑฐ
strip(chars) ์ง€์ •ํ•œ ๋ฌธ์ž๋“ค ์ œ๊ฑฐ

3.1 strip()

๋ฌธ์ž์—ด์˜ ์ขŒ์šฐ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

a = "    Hello, world   "

print(f"์›๋ณธ: [{a}]")
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ์›๋ณธ: [    Hello, world   ]

print(f"strip(): [{a.strip()}]")
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: strip(): [Hello, world]

print(f"lstrip(): [{a.lstrip()}]")
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: lstrip(): [Hello, world   ]

print(f"rstrip(): [{a.rstrip()}]")
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: rstrip(): [    Hello, world]

3.2 ํŠน์ • ๋ฌธ์ž ์ œ๊ฑฐ

text = "###Python###"
print(text.strip('#'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Python'

text2 = "xxxyyyPythonyyxxx"
print(text2.strip('xy'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Python'

4. ๋ฌธ์ž์—ด ์น˜ํ™˜ ๋ฉ”์„œ๋“œ

4.1 replace(old, new, count)

ํŠน์ • ๋ฌธ์ž์—ด์„ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

a = "    Hello, world   "

# ๊ธฐ๋ณธ ์‚ฌ์šฉ
print(a.upper().strip().replace('H', 'J'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'JELLO, WORLD'

# count ๋งค๊ฐœ๋ณ€์ˆ˜: ์น˜ํ™˜ ํšŸ์ˆ˜ ์ œํ•œ
text = "apple apple apple"
print(text.replace('apple', 'orange', 2))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'orange orange apple'

4.2 ์‹ค์šฉ์ ์ธ ํ™œ์šฉ ์˜ˆ์ œ

# ๊ฐ€๊ฒฉ ๋ฌธ์ž์—ด์—์„œ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๊ธฐ
price = "21,300์›"

# ๋ฐฉ๋ฒ• 1: replace ์—ฐ์† ์‚ฌ์šฉ
result = int(price.replace("์›", "").replace(",", "").strip())
print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 21300

# ๋ฐฉ๋ฒ• 2: ์Šฌ๋ผ์ด์‹ฑ๊ณผ replace ์กฐํ•ฉ
result = int(price.strip().replace(",", "")[:-1])
print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 21300

5. ๋ถ„๋ฆฌ์™€ ๊ฒฐํ•ฉ ๋ฉ”์„œ๋“œ

5.1 split(separator, maxsplit)

๋ฌธ์ž์—ด์„ ๊ตฌ๋ถ„์ž ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค๋ช… ๊ธฐ๋ณธ๊ฐ’
separator ๋ถ„๋ฆฌ ๊ธฐ์ค€ ๋ฌธ์ž์—ด ๊ณต๋ฐฑ (์—ฐ์† ๊ณต๋ฐฑ๋„ ์ž๋™ ์ฒ˜๋ฆฌ)
maxsplit ์ตœ๋Œ€ ๋ถ„๋ฆฌ ํšŸ์ˆ˜ -1 (๋ฌด์ œํ•œ)
# ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌ (๊ธฐ๋ณธ)
myStr = "Hello Python 2024"
print(myStr.split())
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['Hello', 'Python', '2024']

# ํŠน์ • ๊ตฌ๋ถ„์ž๋กœ ๋ถ„๋ฆฌ
date = "2025-01-16"
print(date.split("-"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['2025', '01', '16']

# ์ตœ๋Œ€ ๋ถ„๋ฆฌ ํšŸ์ˆ˜ ์ง€์ •
text = "a,b,c,d,e"
print(text.split(",", 2))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['a', 'b', 'c,d,e']

# ์‰ผํ‘œ์™€ ๊ณต๋ฐฑ์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌ
data = "์‚ฌ๊ณผ,๋ฐ”๋‚˜๋‚˜,ํŒŒ์ธ์• ํ”Œ,ํฌ๋„,๋ณต์ˆญ์•„"
print(data.split(","))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', 'ํŒŒ์ธ์• ํ”Œ', 'ํฌ๋„', '๋ณต์ˆญ์•„']

Delimiter (๊ตฌ๋ถ„์ž): ํŠน์ • ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฌธ์ž

5.2 join(iterable)

๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

# ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉ
data = ["A", "B", "C", "D", "E"]
print(",".join(data))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'A,B,C,D,E'

# ์‹œ๊ฐ„ ํ˜•์‹์œผ๋กœ ๊ฒฐํ•ฉ
time_parts = ["23", "45", "12"]
print(":".join(time_parts))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: '23:45:12'

# ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž ์‚ฝ์ž…
mystr = "animals"
print('-'.join(mystr))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'a-n-i-m-a-l-s'

# ๋ฌธ์ž์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ ํ›„ ๊ฒฐํ•ฉ
print('-'.join(list(mystr)))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'a-n-i-m-a-l-s'

5.3 split()๊ณผ join() ์กฐํ•ฉ

# ๊ณต๋ฐฑ ์ •๊ทœํ™” (์—ฌ๋Ÿฌ ๊ณต๋ฐฑ์„ ํ•˜๋‚˜๋กœ)
text = "Hello    World    Python"
normalized = " ".join(text.split())
print(normalized)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Hello World Python'

6. ๊ฒ€์ƒ‰ ๋ฉ”์„œ๋“œ

6.1 index(str, start, end)์™€ find(str, start, end)

๋ฉ”์„œ๋“œ ์„ค๋ช… ๋ชป ์ฐพ์„ ๊ฒฝ์šฐ
index() ๋ฌธ์ž์—ด ์œ„์น˜ ๋ฐ˜ํ™˜ ValueError ๋ฐœ์ƒ
find() ๋ฌธ์ž์—ด ์œ„์น˜ ๋ฐ˜ํ™˜ -1 ๋ฐ˜ํ™˜
str3 = "hello python"

# index() - ์œ„์น˜ ๋ฐ˜ํ™˜
print(str3.index("lo"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 3

# find() - ์œ„์น˜ ๋ฐ˜ํ™˜
print(str3.find("python"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 6

# ์—†๋Š” ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰
# print(str3.index("xx"))  # ValueError: substring not found
print(str3.find("xx"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: -1

# ์‹œ์ž‘ ์œ„์น˜ ์ง€์ •
print(str3.find("o", 5))  # ์ธ๋ฑ์Šค 5 ์ดํ›„์—์„œ 'o' ์ฐพ๊ธฐ
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 10

6.2 count(str, start, end)

ํŠน์ • ๋ฌธ์ž์—ด์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

str4 = "aabababbabbaababb"

print(str4.count("a"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 8

print(str4.count("ab"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 5

# ๋ฒ”์œ„ ์ง€์ •
print(str4.count("a", 0, 10))  # ์ธ๋ฑ์Šค 0~9 ๋ฒ”์œ„์—์„œ๋งŒ ๊ฒ€์ƒ‰
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 5

6.3 rfind(), rindex()

์˜ค๋ฅธ์ชฝ(๋’ค)์—์„œ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

text = "hello world hello"

print(text.find("hello"))    # ์™ผ์ชฝ๋ถ€ํ„ฐ: 0
print(text.rfind("hello"))   # ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ: 12

7. ์‹œ์ž‘/๋ ํ™•์ธ ๋ฉ”์„œ๋“œ

7.1 startswith(prefix, start, end)

๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

7.2 endswith(suffix, start, end)

๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

url = "http://example.com/index.html"

print(url.startswith("http"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: True

print(url.startswith("https"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: False

print(url.endswith(".html"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: True

print(url.endswith(".css"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: False

# ํŠœํ”Œ๋กœ ์—ฌ๋Ÿฌ ํŒจํ„ด ํ™•์ธ
filename = "document.pdf"
print(filename.endswith(('.pdf', '.doc', '.txt')))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: True

7.3 ์‹ค์šฉ์ ์ธ ํ™œ์šฉ

# ํŒŒ์ผ ํ™•์žฅ์ž ํ™•์ธ
def is_image_file(filename):
    return filename.lower().endswith(('.jpg', '.jpeg', '.png', '.gif'))

print(is_image_file("photo.JPG"))  # True
print(is_image_file("document.pdf"))  # False

8. ์œ ๋‹ˆ์ฝ”๋“œ ํ•จ์ˆ˜

8.1 ord(character)

๋ฌธ์ž๋ฅผ **Unicode ์ฝ”๋“œ๊ฐ’(์ •์ˆ˜)**์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

8.2 chr(code)

Unicode ์ฝ”๋“œ๊ฐ’์„ ๋ฌธ์ž๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

# ord(): ๋ฌธ์ž -> ์ฝ”๋“œ๊ฐ’
print(ord("a"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 97

print(ord("A"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 65

print(ord("๊ฐ€"))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 44032

# chr(): ์ฝ”๋“œ๊ฐ’ -> ๋ฌธ์ž
print(chr(97))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'a'

print(chr(65))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'A'

print(chr(44032))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: '๊ฐ€'

# ํ•œ๊ธ€ ๊ฐœ์ˆ˜ ๊ณ„์‚ฐ
hangul_count = ord("ํžฃ") - ord("๊ฐ€") + 1
print(f"ํ•œ๊ธ€ ๊ฐœ์ˆ˜: {hangul_count}")
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ํ•œ๊ธ€ ๊ฐœ์ˆ˜: 11172

8.3 ์œ ๋‹ˆ์ฝ”๋“œ ํ™œ์šฉ ์˜ˆ์ œ

# ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž ์ถœ๋ ฅ
for i in range(26):
    print(chr(ord('A') + i), end=' ')
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

# ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ธ์ง€ ํ™•์ธ
def is_uppercase(char):
    return ord('A') <= ord(char) <= ord('Z')

print(is_uppercase('A'))  # True
print(is_uppercase('a'))  # False

9. ๋ฌธ์ž์—ด ๋“ฑ์žฅ ํšŸ์ˆ˜ ๊ณ„์‚ฐ

9.1 for๋ฌธ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•

word = "Alice in wonderland"
data = word.lower()
result = {}

for ch in data:
    if ch.isalpha():  # ์•ŒํŒŒ๋ฒณ์ธ์ง€ ํ™•์ธ
        result[ch] = result.get(ch, 0) + 1

print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: {'a': 2, 'l': 2, 'i': 2, 'c': 1, 'e': 2, 'n': 3, 'w': 1, 'o': 1, 'd': 2, 'r': 1}

9.2 Dict Comprehension์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•

word = "Alice in wonderland"
w = word.lower()

result = {ch: w.count(ch) for ch in w if ch.isalpha()}
print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: {'a': 2, 'l': 2, 'i': 2, 'c': 1, 'e': 2, 'n': 3, 'w': 1, 'o': 1, 'd': 2, 'r': 1}

9.3 collections.Counter ์‚ฌ์šฉ

from collections import Counter

word = "Alice in wonderland"
counter = Counter(ch for ch in word.lower() if ch.isalpha())
print(dict(counter))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: {'a': 2, 'l': 2, 'i': 2, 'c': 1, 'e': 2, 'n': 3, 'w': 1, 'o': 1, 'd': 2, 'r': 1}

# ๊ฐ€์žฅ ๋งŽ์ด ๋“ฑ์žฅํ•œ ๋ฌธ์ž
print(counter.most_common(3))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: [('n', 3), ('a', 2), ('l', 2)]

10. ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹

๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ฒด์ด๋‹์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

# ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹ ์˜ˆ์ œ
a = "    Hello, World   "
result = a.upper().strip().replace('H', 'J')
print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'JELLO, WORLD'

# ๋ณต์žกํ•œ ์ฒด์ด๋‹
text = "  Python Programming  "
result = text.strip().lower().replace(' ', '_').title()
print(result)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Python_Programming'

# ๋ฐ์ดํ„ฐ ์ •์ œ ํŒŒ์ดํ”„๋ผ์ธ
raw_data = "   John,Doe,30,New York   "
cleaned = raw_data.strip().split(',')
print(cleaned)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['John', 'Doe', '30', 'New York']

11. ๊ธฐํƒ€ ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ

11.1 ๋ฌธ์ž ํƒ€์ž… ํ™•์ธ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช…
isalpha() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ธ์ง€ ํ™•์ธ
isdigit() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ธ์ง€ ํ™•์ธ
isalnum() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ ๋˜๋Š” ์ˆซ์ž์ธ์ง€ ํ™•์ธ
isspace() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ๊ณต๋ฐฑ์ธ์ง€ ํ™•์ธ
isupper() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ธ์ง€ ํ™•์ธ
islower() ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž์ธ์ง€ ํ™•์ธ
print("Hello".isalpha())    # True
print("12345".isdigit())    # True
print("Hello123".isalnum()) # True
print("   ".isspace())      # True
print("HELLO".isupper())    # True
print("hello".islower())    # True

11.2 ์ •๋ ฌ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช…
center(width) ๊ฐ€์šด๋ฐ ์ •๋ ฌ
ljust(width) ์™ผ์ชฝ ์ •๋ ฌ
rjust(width) ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ
zfill(width) ์™ผ์ชฝ์„ 0์œผ๋กœ ์ฑ„์›€
text = "Python"

print(text.center(20, '-'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: '-------Python-------'

print(text.ljust(20, '-'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: 'Python--------------'

print(text.rjust(20, '-'))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: '--------------Python'

print("42".zfill(5))
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: '00042'

11.3 splitlines()

์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

text = """Line 1
Line 2
Line 3"""

lines = text.splitlines()
print(lines)
# ์ถœ๋ ฅ๊ฒฐ๊ณผ: ['Line 1', 'Line 2', 'Line 3']

๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ ์š”์•ฝ ํ‘œ

์นดํ…Œ๊ณ ๋ฆฌ ๋ฉ”์„œ๋“œ ์„ค๋ช…
๋Œ€์†Œ๋ฌธ์ž upper(), lower() ๋Œ€/์†Œ๋ฌธ์ž ๋ณ€ํ™˜
capitalize(), title() ์ฒซ ๊ธ€์ž ๋Œ€๋ฌธ์žํ™”
swapcase() ๋Œ€์†Œ๋ฌธ์ž ๋ฐ˜์ „
๊ณต๋ฐฑ strip(), lstrip(), rstrip() ๊ณต๋ฐฑ/๋ฌธ์ž ์ œ๊ฑฐ
์น˜ํ™˜ replace(old, new) ๋ฌธ์ž์—ด ์น˜ํ™˜
๋ถ„๋ฆฌ/๊ฒฐํ•ฉ split(sep) ๋ถ„๋ฆฌ -> ๋ฆฌ์ŠคํŠธ
join(iterable) ๋ฆฌ์ŠคํŠธ -> ๊ฒฐํ•ฉ
๊ฒ€์ƒ‰ find(), rfind() ์œ„์น˜ ๋ฐ˜ํ™˜ (-1)
index(), rindex() ์œ„์น˜ ๋ฐ˜ํ™˜ (์—๋Ÿฌ)
count() ๋“ฑ์žฅ ํšŸ์ˆ˜
ํ™•์ธ startswith(), endswith() ์‹œ์ž‘/๋ ํ™•์ธ
isalpha(), isdigit(), etc. ๋ฌธ์ž ํƒ€์ž… ํ™•์ธ
์œ ๋‹ˆ์ฝ”๋“œ ord(), chr() ๋ฌธ์ž <-> ์ฝ”๋“œ๊ฐ’
์ •๋ ฌ center(), ljust(), rjust() ๋ฌธ์ž์—ด ์ •๋ ฌ

์ฐธ๊ณ  ์ž๋ฃŒ