반응형
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 |