[Python] 문자열의 이해

심진주·2025년 2월 6일

Python

목록 보기
5/5
post-thumbnail

문자열의 이해

1. 문자열 다루기

문자열 다루기

  • 문장을 표현하는 글자들의 모임을 값으로 갖는 변수
    • 문자열을 표현하기 위해서는 쌍따옴표 또는 홑따옴표의 쌍으로 문장을 감싸야한다.
msg1 = "Good"		# 쌍따옴표로 감싼 경우
msg2 = 'Python'	    # 홑따옴표로 감싼 경우
  • 서로 다른 따옴표를 혼용 할 수는 없다
msg3 = "Bad'		# 에러

문자열의 덧셈

# 문자열은 덧셈은 문자열을 연결하는 기능
msg1 = "Hello"
msg2 = "Python"
print(msg1 + ", " + msg2)
Hello, Python
# 따옴표로 감싸면 무조건 문장
# -> 숫자가 아니므로 연산 결과도 문자열 연산 규칙을 따른다.
pay = "100"
bonus = "20"
print(pay + bonus)
10020
# 문자열과 다른 데이터 타입의 값은 덧셈 불가
print(msg1 + 100)  # 에러
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[8], line 2
      1 # 문자열과 다른 데이터 타입의 값은 덧셈 불가
----> 2 print(msg1 + 100)  # 에러

TypeError: can only concatenate str (not "int") to str

문자열의 곱셈

# 문자열과 수자의 곱셈은 동일 내용을 여러번 반복한다
name = "홍길동"
print(name * 3)
홍길동홍길동홍길동
# 문자열끼리의 곱셈은 불가능
strTimes = "Hello" * "Python"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[11], line 2
      1 # 문자열끼리의 곱셈은 불가능
----> 2 strTimes = "Hello" * "Python"

TypeError: can't multiply sequence by non-int of type 'str'

2. 이스케이프 문자 활용

따옴표 안에 따옴표 넣기

  • 쌍따옴표로 구성된 문자열 안에 쌍따옴표를 포함시키고자 할 경우
msg = "Hello "Python" World"
print(msg)						## 에러
  • 문자열에 포함될 쌍따옴표나 홑따옴표 앞에 역슬래시\를 적용
msg = "Hello \"Python\" World"
print(msg)
Hello "Python" World

이스케이프 문자

  • 문자열에 포함되는 특수문자
    • 역슬래시와 기호 혹은 글자를 조합하여 한 글자를 이룬다.
    • 역슬래시는 사용중인 글꼴에 따라 표시되는 모양이 다를 수 있다
기호의미
\n줄바꿈(=개행문자)
\t탭(띄어쓰기 4개)
\"쌍따옴표
\'홑따옴표
\역슬래시 자체

문자열 안에 따옴표를 포함시키는 다른 방법

  • 문자열을 쌍따옴표로 표현하는 경우 → 홑따옴표를 포함 가능
  • 문자열을 홑따옴표로 표현하는 경우 → 쌍따옴표를 포함 가능

3. 인덱싱과 슬라이싱

문자열의 인덱스 번호

  • 각각의 글자들에게 부여되는 0부터 시작되는 일련번호 (0으로 시작)

문자열 인덱싱

  • 인덱스 번호를 활용하여 특정 글자를 추출하는 처리
    • 문자열 변수 뒤에 대괄호[]를 사용하여 인덱스 번호를 지정
    msg = "Hello Python"
    • 양의 정수 인덱스 번호를 사용한 인덱싱의 결과를 다른 변수에 저장
    a = msg[2]  # 앞에서 2번째 문자열 l을 a에 복사
    print(a)	# l
    • 음의 정수 인덱스 번호를 사용한 인덱싱 결과를 직접 출력
    print(msg[-4])	# 뒤에서 4번째 → t

📌 문자의 슬라이싱

msg = "You need python"
  • 문자열의 구간 지정
    • 문자열의 인덱스 번호에 대한 구간을 지정하여 원하는 부분을 추출하는 방법
    • 대괄호[] 안에 시작위치와 끝 위치를 콜론:으로 구분하여 지정
      • 문자열변수[시작위치:끝위치]
        시작부터 끝위치까지 추출하는데 끝위치는 포함하지 않는다. → 끝위치 전까지
    • 양의 정수 인덱스 번호를 사용하여 "need" 추출
    print(msg[4:8])	# index4부터 8전까지
    • 음의 정수 인덱스 번호를 사용하여 "need" 추출
    print(msg[-11:-7])	# # index -11부터 -7전까지
    • 양의 정수와 음의 정수 혼합 사용
    print(msg[4:-7])	# index 4부터 -7전까지
    • 시작위치만 지정
    print(msg[4:])	# index 4부터 끝까지
    • 끝위치만 지정
    print(msg[:8])	# 처음부터 index 8전까지
    • 처음부터 끝까지 모든 글자 추출
    print(msg[:])

연습문제

슬라이싱을 활용해 문자열 다루기
Daum Kakao → Kakao Daum

s = "Daum Kakao"
print(s)

s = s[5:] + " " + s[:4]

print(s)    # Daum Kakao
Daum Kakao
Kakao Daum

0개의 댓글