파이썬
파이썬(Python) 문자열 내장 함수
Irene1988
2025. 6. 16. 16:23
✅ 문자열 내장 함수(메서드)란?
- 문자열 자료형(str)이 갖고 있는 기본 제공 함수들
- "문자열".함수() 형태로 사용함
- 예: "hello".upper() → 대문자로 변환
✅ 자주 쓰는 문자열 내장 함수 15선
함수 | 설명 | 예시 |
upper() | 모두 대문자로 | "apple".upper() → 'APPLE' |
lower() | 모두 소문자로 | "Apple".lower() → 'apple' |
capitalize() | 첫 글자만 대문자 | "python is fun".capitalize() → 'Python is fun' |
title() | 단어마다 첫 글자 대문자 | "hello world".title() → 'Hello World' |
strip() | 양쪽 공백 제거 | " hi ".strip() → 'hi' |
lstrip() | 왼쪽 공백 제거 | " hi".lstrip() → 'hi' |
rstrip() | 오른쪽 공백 제거 | "hi ".rstrip() → 'hi' |
replace(a, b) | 문자열 a → b로 바꾸기 | "hello world".replace("world", "Python") → 'hello Python' |
split() | 공백(기본) 기준 나누기 | "a b c".split() → ['a', 'b', 'c'] |
split(',') | 쉼표 기준 나누기 | "a,b,c".split(',') → ['a', 'b', 'c'] |
join() | 리스트를 문자열로 연결 | ",".join(['a', 'b']) → 'a,b' |
find() | 처음 나오는 위치 반환 | "banana".find("a") → 1 |
rfind() | 뒤에서부터 찾기 | "banana".rfind("a") → 5 |
count() | 문자열 내 특정 문자 개수 | "banana".count("a") → 3 |
startswith() / endswith() | 특정 문자로 시작/끝나는지 | "hello".startswith("he") → True |
✅ 예제 모음
text = " Hello, Python world! "
print(text.strip()) # 'Hello, Python world!'
print(text.upper()) # ' HELLO, PYTHON WORLD! '
print(text.lower()) # ' hello, python world! '
print(text.replace("world", "universe")) # ' Hello, Python universe! '
print(text.split()) # ['Hello,', 'Python', 'world!']
✅ 실습 예제: 이메일 유효성 확인
email = "test@example.com"
if email.endswith("@example.com"):
print("회사 이메일입니다.")
✅ 문자열 관련 유용한 함수 추가
함수 | 설명 | 예시 |
isalnum() | 영문자/숫자인지 | "abc123".isalnum() → True |
isalpha() | 영문자만 있는지 | "abc".isalpha() → True |
isdigit() | 숫자만 있는지 | "123".isdigit() → True |
isspace() | 공백 문자만 있는지 | " ".isspace() → True |
✅ 1. chr()
**정수(유니코드 숫자)**를 문자로 변환해주는 함수
✔ 사용법:
chr(65) # 'A'
chr(97) # 'a'
chr(8364) # '€'
🧠 참고: ord()는 반대 기능을 합니다. 문자 → 유니코드 정수
ord('A') # 65
ord('€') # 8364
✅ 2. eval()
문자열로 된 파이썬 표현식을 실행해서 결과를 반환
✔ 사용법:
eval("3 + 5") # 8
eval("len('hello')") # 5
eval("sum([1, 2, 3])") # 6
⚠ 주의!
- eval()은 입력된 문자열을 실제 코드로 실행하므로, 보안상 위험이 있어요. 외부 입력으로 절대 쓰면 안 됨!!
✅ 3. format()
문자열을 **포맷팅(서식 적용)**할 때 사용
✔ 사용법 ①: 위치 기반
"Hello, {}!".format("MJ") # 'Hello, MJ!'
"{} + {} = {}".format(3, 5, 8) # '3 + 5 = 8'
✔ 사용법 ②: 이름 기반
"{name} is {age} years old.".format(name="MJ", age=25)
# 'MJ is 25 years old.'
✔ 사용법 ③: 숫자 서식
"{:.2f}".format(3.14159) # '3.14' (소수점 둘째 자리까지)
"{:03d}".format(7) # '007' (정수 3자리, 앞에 0 채움)
✅ 4. str()
숫자, 리스트, 객체 등을 **문자열(str 타입)**으로 변환
✔ 사용법:
str(123) # '123'
str(3.14) # '3.14'
str([1, 2, 3]) # '[1, 2, 3]'
str(True) # 'True'
📌 보통 print()할 때 문자열로 변환되지만, str()을 써서 명시적으로 문자열로 바꾸는 것도 가능해요.
✅ 정리 요약표
함수 | 기능 | 예시 | 결과 |
chr() | 정수 → 문자 | chr(65) | 'A' |
eval() | 문자열 코드 실행 | eval("3+4") | 7 |
format() | 문자열 서식 지정 | "{} + {}".format(3,5) | '3 + 5' |
str() | 객체 → 문자열 | str(3.14) | '3.14' |