Python 시리즈 8
1 / 2
[Python] #7 문자열
[Python] #7 문자열
#python#코드트리#trail0

참고: codetree Trail 0의 Chapter 7
1. 문자열string
문자의 모음(집합)으로 이루어진 자료형 한 번 생성하면 요소를 직접 변경할 수 없는
불변(immutable)자료형
- 작음·홑따옴표(')나 큰·쌍따옴표(")로 감싸서 표현
- 여러 줄로 이루어진 문자열은
삼중 따옴표(""" · ''')사용
"""삼중 따옴표를 이용한 여러 줄 문자열
작성된 문자열입니다."""
# 빈 문자열
empty_str = ""
1-1. 문자열 생성 & 초기화
1-1-1. 직접 값 나열
# 문자열 직접 할당
message = "안녕하세요!"
1-1-2. str() 함수
- 다른 데이터 타입을 문자열로 변환
number = 123
text = str(number)
print(text) # "123"
1-2. 인덱싱
- 특정 문자를 인덱스로 접근 가능 (0부터 시작)
text = "Python"
# 예시1
print(text[0]) # 출력: P
print(text[3]) # 출력: h
# 예시2
print(text[-1]) # 출력: n
print(text[-4]) # 출력: t
# 예시3 (오류)
print(text[6]) # 문자열 범위를 초과하는 인덱스 (IndexError)
1-3. 문자열 변경 (값 수정)
- 불변 자료형은 직접 수정 불가하므로, 새 문자열 생성 필요
text = "Python"
# 특정 문자를 변경하려고 시도
text[0] = "J" # 오류 발생
1-4. 문자열 덧셈(연결)
+연산자를 사용하여 2개 이상의 문자열을 연결하여 하나의 문장 생성- 다른 데이터 타입은 바로 연결 불가하므로, 형변환 필요
str1 = "Hello, "
str2 = "World!"
print(str1 + str2) # Hello, World!
1-5. 문자열 곱셈(반복)
*연산자를 사용하여 특정 문자열을 지정된 횟수만큼 반복- 반복 횟수는 음수 값이 아닌 정수
- 문자열 패턴을 나타내므로, 반복되는 문자열 생성에 사용
str1 = "Hi "
print(str1 * 4) # Hi Hi Hi Hi
1-6. 문자열 슬라이싱
문자열의 특정 부분만 쉽게 추출하는 방법
문자열[start:end]
- 긴 문자열에서 원하는 부분만 따로 사용하거나 확인할 때 사용
text = "Python is fun"
print(text[1:4]) # yth
1-6-1. start 또는 end 생략
- start 생략: 문자열의
첫 번째 요소(인덱스 0)부터시작 - end 생략: 문자열의
마지막 요소까지포함 - 둘 다 생략: 문자열의
처음부터 끝까지전체
text = "Python is fun"
print(text[:5]) # Pytho
print(text[2:]) # thon is fun
print(text[:]) # Python is fun
print(text[-5:]) # s fun
1-6-2. step(간격) 지정
- 기본값은 1이며, 2 이상을 주면 해당 간격만큼 건너뛰며 추출
- 음수 값을 주면 리스트를 거꾸로 뒤집어서 추출
text = "Python is fun"
print(text[::2]) # Pto sfn
print(text[::-1]) # nuf si nohtyP
1-7. 문자열 메서드
1-7-1. 대소문자 변환
(1) upper(): 문자열의 모든 문자를 대문자로 변환
(2) lower(): 문자열의 모든 문자를 소문자로 변환
text = "Python Programming"
print(text.upper()) # "PYTHON PROGRAMMING"
print(text.lower()) # "python programming"
1-7-2. 공백문자 제거
(1) strip(): 문자열 양쪽에 있는 공백(\n, \t 포함) 문자 제거
(2) lstrip(): 문자열 왼쪽(앞쪽)에 있는 공백 또는 지정 문자 제거
(3) rstrip(): 문자열 오른쪽(뒤쪽)에 있는 공백 또는 지정 문자 제거
text = " Hello, World! "
print(text.strip()) # "Hello, World!"
print(text.lstrip()) # "Hello, World! "
print(text.rstrip()) # " Hello, World!"
1-7-3. 특정 문자열 대체
(1) replace(): 문자열 내에서 특정 부분 문자열을 앞에서부터 확인하여 다른 문자열로 변경
- 첫 번째 인자: 찾을 문자열
- 두 번째 인자: 대체할 문자열
- 세 번째 인자: 변경 횟수 (생략 시, 대체 가능한 문자열
전부변경)
text = "Hello World, Hello Python!"
# 예시1 (첫 "Hello" -> "Good" 변경)
new_text = text.replace("Hello", "Good", 1)
print(new_text) # "Good World, Hello Python!"
# 예시2 (모든 부분 문자열 "Hello" -> "Good" 변경)
new_text = text.replace("Hello", "Good")
print(new_text) # "Good World, Good Python!"
1-7-4. 문자열 분할
1-7-4-1. split()
- 문자열을 구분자를 기준으로 분할하여 리스트로 반환
(1) 구분자 지정 X
- 기본적으로
공백
sentence = "Python is fun"
words = sentence.split()
print(words) # ['Python', 'is', 'fun']
(2) 구분자 지정 O
data = "apple,banana,cherry"
fruits = data.split(",")
print(fruits) # ['apple', 'banana', 'cherry']
1-7-5. 리스트를 문자열로 결합
1-7-5-1. join()
- 리스트 요소들을 각 요소 사이에 지정한 구분자를 삽입하여 하나의 문자열로 결합
(1) 구분자: 공백
words = ['Python', 'is', 'fun']
sentence = " ".join(words)
print(sentence) # "Python is fun"
(2) 구분자: 쉼표
words = ['Apple', 'Grape', 'Mango']
sentence = ",".join(words)
print(sentence) # "Apple,Grape,Mango"
1-7-6. 문자열 찾기
1-7-6-1. find():
- 특정 문자열 찾고 그 시작 위치의 인덱스 반환
- 찾는 문자열이 여러개라면 가장 앞에 오는 문자열의 시작 인덱스 반환
text = "Hello, World!"
print(text.find("World")) # 7
print(text.find("Python")) # -1
1-7-6-2. index()
- 특정 문자열의 첫 등장 위치 찾아 시작 인덱스 반환
- 찾지 못하면
ValueError발생
1-7-7. 특정 문자열 개수 세기
(1) count()
- 특정 문자열이
몇 번등장하는지 세어 반환
text = "banana"
print(text.count("a")) # 3
1-8. in 연산자
문자열 내에서 특정 문자열이나 문자가
포함되어 있는지 확인하는 연산자 (포함 관계 확인)
- 연산 결과로 존재하면 True, 존재하지 않으면 False 값 반환
- 메서드가 아니므로 문자열에 대해 호출하는 방식 X (≠ for _ in _)
text = "Python Programming"
print("Python" in text) # True
print("python" in text) # False
print("on Program" in text) # True
1-9. 특수 문자Excape Characters
특정 동작을 수행하거나 특수한 문자 표현 위해 사용되는 이스케이프 문자
백슬래시(\)로 시작
(1) \n
- 줄 바꿈 (Newline)
multiline_str = "안녕하세요.\n파이썬을 배워봅시다."
print(multiline_str)
# 안녕하세요.
# 파이썬을 배워봅시다.
(2) \t
- 탭 (Tab)
tab_str = "이름\t나이\t직업"
print(tab_str)
# 이름 나이 직업
(3) \\
- 백슬래시 (Backslash)
path = "C:\\Users\\홍길동\\Documents"
print(path)
# C:\Users\홍길동\Documents
(4) \'
- 작음따옴표 (Singlr Quote)
quote = '그는 말했다, \'안녕하세요\''
print(quote)
# 그는 말했다, '안녕하세요'
(5) \"
- 큰따옴표 (Double Quote)
quote = "그녀는 말했다, \"파이썬은 재미있어요\""
print(quote)
# 그녀는 말했다, "파이썬은 재미있어요"
(6) 서로 다른 따옴표 사용
- 문자열을 감싸는 따옴표와 문자열 내부에서 사용하는 따옴표의 종류를 다르게 하면 이스케이프 문자 사용않고도 따옴표 포함 가능
# 예시1 (작은따옴표로 감싸고 내부에 큰따옴표 사용)
quote = '그는 말했다, "안녕하세요"'
print(quote)
# 그는 말했다, "안녕하세요"
# 예시2 (큰따옴표로 감싸고 내부에 작은따옴표 사용)
quote = "그녀는 말했다, '파이썬은 재미있어요'"
print(quote)
# 그녀는 말했다, '파이썬은 재미있어요'
# 예시3 (삼중 따옴표로 감싸고 내부에 큰·작은 따옴표 사용)
print('''He says "It's a really simple sentence".''')
[코드트리 추천 링크] https://www.codetree.ai/ko/trail-info?referralCode=th2gr22n
댓글 0
아직 댓글이 없습니다.