본문 바로가기
프로그래밍/파이썬

파이썬 - 문자열 메서드 정리

by ennak 2024. 11. 25.
반응형

1. format()

특징

  • 문자열 내에서 중괄호 {}를 사용하여 자리 표시자를 정의하고, 이 자리 표시자에 값을 삽입하는 방식으로 문자열을 포맷팅하는 기능을 제공한다.
  • 다양한 형식 지정 옵션을 통해 숫자나 문자열을 원하는 형식으로 변환할 수 있다.

예제

# 기본 사용법
name = "Alice"
age = 30
formatted_string = "My name is {} and I am {} years old.".format(name, age)
print(formatted_string)  # My name is Alice and I am 30 years old.
# 위치 인수 사용
formatted_string = "My name is {0} and I am {1} years old.".format(name, age)
print(formatted_string)  # My name is Alice and I am 30 years old.
# 키워드 인수 사용
formatted_string = "My name is {name} and I am {age} years old.".format(name="Alice", age=30)
print(formatted_string)  # My name is Alice and I am 30 years old.
# 숫자 형식 지정
value = 1234.56789
formatted_string = "Value: {:.2f}".format(value)
print(formatted_string)  # Value: 1234.57
# 정렬 및 패딩
formatted_string = "|{:<10}|{:^10}|{:>10}|".format("left", "center", "right")
print(formatted_string)  # |left      |  center  |     right|

주의사항

  • 빈 괄호와 숫자가 들어간 괄호를 동시에 사용할 수 없다. 즉, {}와 {0}를 같은 문자열에서 함께 사용할 수 없다.
  • 숫자 자료형과 문자열 자료형의 구분: 숫자 포맷팅을 할 때는 반드시 숫자 자료형이어야 하며, 문자열로 된 숫자는 사용할 수 없다.
  • 포맷팅 순서: 위치 인수를 사용할 때는 format() 내의 값들이 지정된 순서대로 대체되므로, 순서를 정확히 맞춰야 한다.

 

2. zfill()

특징

  • 문자열의 왼쪽에 '0'을 채워 지정된 길이의 문자열을 만든다.
  • 숫자 형식의 문자열을 일정한 길이로 맞출 때 유용하다.

예제

num = "42"
print(num.zfill(5))  # 출력: '00042'

주의사항

# 원본 문자열의 길이가 지정된 길이보다 길면 아무 변화가 없다.
print("123456".zfill(4))  # 출력: '123456'
# 음수 부호가 있는 경우, 부호 다음에 '0'이 채워진다.
print("-42".zfill(5))  # 출력: '-0042'

3. replace(바꿀값,새로운값)

특징

  • 문자열 내의 특정 부분을 다른 문자열로 교체한다.
  • 모든 일치하는 부분을 교체한다.

예제

text = "Hello, World!"
print(text.replace("World", "Python"))  # 출력: 'Hello, Python!'

주의사항

# 대소문자를 구분한다.
print("Hello, World!".replace("world", "Python"))  # 출력: 'Hello, World!'
# 세 번째 인자로 교체 횟수를 제한할 수 있다.
print("Hello, Hello, Hello".replace("Hello", "Hi", 2))  # 출력: 'Hi, Hi, Hello'

4. strip(), rstrip(), lstrip()

특징

  • strip(): 문자열의 양쪽 끝에서 특정 문자(기본은 공백)를 제거한다.
  • rstrip(): 오른쪽 끝에서만 특정 문자(기본 공백)를 제거한다.
  • lstrip(): 왼쪽 끝에서만 특정 문자(기본 공백)를 제거한다.

예제

text = "   Python   "
print(text.strip())  # 출력: 'Python'
print("...Python...".rstrip("."))  # 출력: '...Python'
print("...Python...".lstrip("."))  # 출력: 'Python...'
text2 = "!!!Python!!!"
print(text2.rstrip("!"))  # 출력: '!!!Python'

주의사항

# 문자열 중간의 문자는 제거되지 않는다.
print("  Py  thon  ".strip())  # 출력: 'Py  thon'
# 인자로 여러 문자를 전달하면, 그 문자들의 조합을 제거한다.
print("www.example.com".strip("wcmo."))  # 출력: 'example'

5. index() 와 find()

특징

  • 둘 다 문자열에서 특정 부분 문자열의 시작 인덱스를 찾는다.
  • index(): 찾지 못하면 ValueError를 발생시킨다.
  • find(): 찾지 못하면 -1을 반환한다.

예제

text = "Hello, World!"
print(text.index("World"))  # 출력: 7
print(text.find("Python"))  # 출력: -1

주의사항

# index()는 예외 처리가 필요할 수 있다.
try:
    print("Hello".index("x"))
except ValueError:
    print("Not found")  # 출력: Not found
# 대소문자를 구분한다.
print("Hello".find("he"))  # 출력: -1

6. upper(), lower(), capitalize()

특징

  • upper(): 모든 문자를 대문자로 변환한다.
  • lower(): 모든 문자를 소문자로 변환한다.
  • capitalize(): 첫 글자만 대문자로, 나머지는 소문자로 변환한다.

예제

text = "Hello, World!"
print(text.upper())  # 출력: HELLO, WORLD!
print(text.lower())  # 출력: hello, world!
print("hELLO, wORLD!".capitalize())  # 출력: Hello, world!

주의사항

# 원본 문자열은 변경되지 않고 새로운 문자열을 반환한다.
original = "Hello"
upper_case = original.upper()
print(original)  # 출력: Hello
print(upper_case)  # 출력: HELLO
# capitalize()는 첫 글자만 대문자로 만들고 나머지는 모두 소문자로 만든다.
print("hELLO wORLD".capitalize())  # 출력: Hello world

7. count()

특징

  • 문자열 내에서 특정 부분 문자열의 등장 횟수를 반환한다.

예제

text = "Hello, Hello, Hello, World!"
print(text.count("Hello"))  # 출력: 3

주의사항

# 대소문자를 구분한다.
print("Hello, hello".count("Hello"))  # 출력: 1
# 검색 범위를 지정할 수 있다.
print("Hello, Hello, Hello".count("Hello", 7))  # index 7부터 count, 출력: 2

8. split()

특징

  • 문자열을 특정 구분자(기본은 공백)를 기준으로 나누어 리스트로 반환한다.

예제

text = "apple,banana,orange"
print(text.split(","))  # 출력: ['apple', 'banana', 'orange']

주의사항

# 구분자가 연속으로 나타나면 빈 문자열이 포함될 수 있다.
print("a,,b,c".split(","))  # 출력: ['a', '', 'b', 'c']
# 최대 분할 횟수를 지정할 수 있다.
print("a,b,c,d".split(",", 2))  # 출력: ['a', 'b', 'c,d']

9. center(), ljust(), rjust()

특징

  • center(): 지정된 길이의 문자열 중앙에 원본 문자열을 위치시킨다.
  • ljust(): 왼쪽 정렬하여 지정된 길이의 문자열을 만든다.
  • rjust(): 오른쪽 정렬하여 지정된 길이의 문자열을 만든다.

예제

text = "Python"
print(text.center(20, "-"))  # 출력: -------Python-------
print(text.ljust(10, "*"))   # 출력: Python****
print(text.rjust(10, "*"))   # 출력: ****Python

주의사항

# 지정된 길이가 원본 문자열보다 짧으면 원본 그대로 반환된다.
print("Python".center(4))  # 출력: Python
# 두 번째 인자(채울 문자)를 지정하지 않으면 기본값은 공백이 된다.
print("Python".center(10))  # 출력:   Python  
반응형

'프로그래밍 > 파이썬' 카테고리의 다른 글

파이썬 - 컴프리헨션  (0) 2024.11.27
파이썬 - 튜플 개념 정리  (0) 2024.11.26
파이썬 - 리스트 메서드 정리  (0) 2024.11.25
파이썬의 자료형  (0) 2024.11.24
파이썬의 기원과 철학, 특징  (1) 2024.11.24