c.horokhoroklog

Python 시리즈 8

순서제목작성일조회댓글
8[Python] #8 함수2026. 6. 23. (화)170
7[Python] #7 문자열2026. 6. 19. (금)560
6[Python] #6 리스트2026. 6. 19. (금)650
5[Python] #5 반복문2026. 6. 18. (목)950
4[Python] #4 조건문2026. 6. 18. (목)1090
1 / 2

[Python] #7 문자열

그린 프로필그린||14:54:57|조회 56|댓글 0|반응 0
#python#코드트리#trail0

thumbnail_python7.png

참고: 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

로그인 필요 프로필로그인 필요

아직 댓글이 없습니다.