[Python] 문자열(String)

2025. 6. 11. 11:41·냠냠쩝쩝/Python
반응형
더보기

파이썬 프로그래밍의 가장 기본적이면서도 강력한 요소인 문자열(String)에 대해 알아보자.

문자열은 웹 개발, 데이터 분석, 인공지능 등 거의 모든 프로그래밍 분야에서 필수적으로 사용된다.


1. 문자열 생성 및 기본 조작

파이썬에서 문자열은 따옴표(')나 큰따옴표(")로 텍스트를 감싸서 생성한다.

# 작은따옴표와 큰따옴표 모두 사용 가능
text1 = 'Hello, Python!'
text2 = "파이썬은 정말 유용하다."

# 문자열 안에 큰따옴표를 쓰고 싶을 땐 작은따옴표로 감싼다.
sentence1 = '그는 "파이썬은 정말 쉬워."라고 말했다.'

# 문자열 안에 작은따옴표를 쓰고 싶을 땐 큰따옴표로 감싼다.
sentence2 = "Python's syntax is very simple."

# 여러 줄의 문자열은 세 개의 따옴표(''' 또는 """)를 사용한다.
multi_line_text = """
이것은
여러 줄로
작성된 문자열이다.
"""
print(text1)
print(text2)
print(multi_line_text)

 

 

생성된 문자열을 다루는 주요 방법들은 다음과 같다.

 

문자열 더하고 곱하기 (연산) : 문자열도 숫자처럼 간단한 연산이 가능하다.

  • 더하기 (+): 두 문자열을 이어 붙인다. (Concatenation)
  • 곱하기 (*): 문자열을 여러 번 반복한다.
head = "Python"
tail = " is fun!"

# 더하기
full_string = head + tail
print(full_string)  # 출력: Python is fun!

# 곱하기
print(head * 3)     # 출력: PythonPythonPython

 

  • 문자열 길이 확인 (len()) : 문자열의 총 문자 개수를 반환한다.
print(f"'{text1}'의 길이는 {len(text1)}이다.") # 출력: 'Hello, Python!'의 길이는 14이다.

 

  • 문자 추출 (인덱싱) : 문자열의 특정 위치에 있는 한 글자를 추출한다. 파이썬에서 인덱스(위치)는 0부터 시작한다.
print(f"'{text1}'의 첫 번째 문자: {text1[0]}")   # 출력: 'H'
print(f"'{text1}'의 여섯 번째 문자: {text1[5]}")  # 출력: ','

 

  • 문자열 일부 추출 (슬라이싱) : 문자열의 특정 범위를 잘라내어 새로운 문자열을 생성한다. [시작_인덱스 : 끝_인덱스_전까지] 형태로 사용한다. 슬라이싱은 데이터에서 필요한 부분만 추출할 때 매우 유용하다.
print(f"'{text1}'에서 0부터 5까지: {text1[0:5]}")     # 출력: Hello
print(f"'{text1}'에서 7번째부터 끝까지: {text1[7:]}")   # 출력: Python!
print(f"'{text1}'에서 처음부터 6번째 전까지: {text1[:6]}") # 출력: Hello,
print(f"'{text1}' 전체 복사 : {text1[:]}")	# 출력: Hello, Python!

# 문자열 뒤집기
# 앞에서부터는 0부터 시작이지만, 맨 마지막에서 시작은 -1에서 시작
print(f"'{text1}' 뒤집기 : {text[::-1]}"	# 출력: !nohtyP ,olleH

 

2. 문자열 메서드

파이썬은 문자열을 효율적으로 다룰 수 있도록 다양한 **메서드(Method)**를 제공한다.

 

2.1. 대소문자 변환

  • lower() : 모든 글자를 소문자로 변환한다.
  • upper() : 모든 글자를 대문자로 변환한다.
  • capitalize() : 첫 글자만 대문자로, 나머지는 소문자로 변환한다. 
example_text = "Python is AMAZING!"
print(f"소문자: {example_text.lower()}")          # 출력: python is amazing!
print(f"대문자: {example_text.upper()}")          # 출력: PYTHON IS AMAZING!
print(f"첫 글자만 대문자: {example_text.capitalize()}") # 출력: Python is amazing!

 

2.2. 공백 제거

데이터 처리 시 불필요한 공백을 제거하는 데 유용하다.

  • strip() : 문자열 양 끝의 모든 공백(띄어쓰기, 탭, 줄바꿈)을 제거한다.
  • lstrip() : 왼쪽(앞) 공백만 제거한다.
  • rstrip() : 오른쪽(뒤) 공백만 제거한다. 
dirty_text = "   안녕하세요, 파이썬!   "
print(f"공백 제거 전: '{dirty_text}'")
print(f"앞뒤 공백 제거: '{dirty_text.strip()}'")     # 출력: '안녕하세요, 파이썬!'
print(f"왼쪽 공백 제거: '{dirty_text.lstrip()}'")    # 출력: '안녕하세요, 파이썬!   '
print(f"오른쪽 공백 제거: '{dirty_text.rstrip()}'")   # 출력: '   안녕하세요, 파이썬!'

 

2.3. 문자열 찾기 및 변경

  • find("찾을 문자열") : 특정 문자열이 처음 등장하는 인덱스(위치)를 반환한다. 찾지 못하면 -1을 반환한다.
  • replace("찾을 문자열", "바꿀 문자열") : 문자열 내의 특정 부분을 다른 문자열로 모두 변경한다.
  • count("찾을 문자열") : 특정 문자열이 나온 횟수를 반환한다.
sentence = "Hello, Python! Hello, World!"
print(f"'Python'의 위치: {sentence.find('Python')}") # 출력: 7
print(f"'Java'의 위치: {sentence.find('Java')}")   # 출력: -1
print(f"Python을 World로 변경: {sentence.replace('Python', 'World')}") # 출력: Hello, World! Hello, World!
print(f"'Hello'가 몇 번 나왔나: {sentence_text.count("Hello")}")	# 출력 : 2

 

3. 문자열 포맷팅 : 변수 값 삽입 및 조합

문자열 안에 변수 값을 동적으로 삽입하거나 원하는 형식으로 조합할 때 문자열 포맷팅을 사용한다.

 

3.1. 📌 f-string 활용 (권장)

파이썬 3.6부터 도입된 f-string은 가장 직관적이고 강력한 포맷팅 방식이다. 문자열 앞에 f를 붙이고, 중괄호 {} 안에 변수나 파이썬 코드를 직접 넣는다.

name = "구름"
age = 99
greeting_f = f"안녕하세요, {name}님! 나이는 {age}세이다."
print(greeting_f) # 출력: 안녕하세요, 구름님! 나이는 99세이다.

# 계산식도 직접 삽입할 수 있다.
price = 1500
quantity = 3
total = f"상품 가격: {price * quantity}원"
print(total) # 출력: 상품 가격: 4500원

 

3.2. 📌 .format() 메서드 사용

f-string이 도입되기 전 주로 사용되던 방법이다. 중괄호 {}를 플레이스홀더로 사용하고, format() 메서드의 인자로 값을 전달한다.

greeting_format = "안녕하세요, {}님! 나이는 {}세이다.".format(name, age)
print(greeting_format) # 출력: 안녕하세요, 구름님! 나이는 99세이다.

# 순서를 지정하거나 이름을 붙여서 사용할 수도 있다.
order = "주문 번호: {1}, 상품명: {0}".format("티셔츠", "A123")
print(order) # 출력: 주문 번호: A123, 상품명: 티셔츠

 

4. 문자열 분리 및 결합 : 텍스트 데이터의 구조화

텍스트 데이터를 처리할 때, 긴 문자열을 특정 기준으로 나누거나, 여러 문자열 조각들을 하나로 합치는 작업이 자주 필요하다.

 

4.1. 문자열 분리 (split())

특정 구분자(Delimiter)를 기준으로 문자열을 나누어 리스트(list) 형태로 반환한다.

data = "Python is fun,and,powerful"
words_by_space = data.split(" ")     # 공백 기준으로 나누기
words_by_comma = data.split(",")     # 쉼표 기준으로 나누기

print(f"공백으로 나눈 결과: {words_by_space}") # 출력: ['Python', 'is', 'fun,and,powerful']
print(f"쉼표로 나눈 결과: {words_by_comma}") # 출력: ['Python is fun', 'and', 'powerful']

 

4.2. 문자열 결합 (join())

리스트에 담긴 여러 문자열들을 특정 구분자를 사용하여 하나의 문자열로 합친다. join() 메서드는 구분자 문자열을 통해 호출된다.

word_list = ["Python", "is", "awesome"]
joined_by_space = " ".join(word_list) # 공백으로 연결
joined_by_hyphen = "-".join(word_list) # 하이픈(-)으로 연결

print(f"공백으로 연결: {joined_by_space}")   # 출력: Python is awesome
print(f"하이픈으로 연결: {joined_by_hyphen}") # 출력: Python-is-awesome

 

5. 문자열 정렬 및 반복 : 출력 형식 제어

문자열을 출력할 때 특정 공간 안에 정렬하거나, 같은 내용을 여러 번 반복해야 할 때 유용한 기능들이다.

 

5.1. 문자열 정렬

  • center(폭) : 문자열을 지정된 폭 안에 중앙 정렬하고, 남는 공간은 공백으로 채운다.
  • ljust(폭) : 문자열을 왼쪽으로 정렬하고, 남는 공간은 공백으로 채운다.
  • rjust(폭) : 문자열을 오른쪽으로 정렬하고, 남는 공간은 공백으로 채운다.
align_text = "Python"
print(f"중앙 정렬 (20칸): '{align_text.center(20)}'")  # 출력: '       Python       '
print(f"왼쪽 정렬 (20칸): '{align_text.ljust(20)}'")   # 출력: 'Python              '
print(f"오른쪽 정렬 (20칸): '{align_text.rjust(20)}'")  # 출력: '              Python'

 

5.2. 문자열 반복

  • * 연산자를 사용하여 문자열을 간단하게 반복할 수 있다.
repeat_text = "Python! " * 3
print(repeat_text) # 출력: Python! Python! Python!

 

📌  파이썬 문자열의 매우 중요한 특징은 '불변(Immutable)'이라는 점이다.
       즉, 한번 생성된 문자열의 내용 자체는 바꿀 수 없다.

s = "Hello"
# s[0] = 'C' # 이렇게 첫 글자를 바꾸려고 하면 TypeError가 발생한다!

 

 

문자열을 '수정'하는 것처럼 보였던 replace() 같은 메서드들은 사실 기존 문자열을 바꾸는 것이 아니라, 변경된 새로운 문자열을 만들어서 반환하는 것이다.

반응형

'냠냠쩝쩝 > Python' 카테고리의 다른 글

[Python] 사용자 입력(Input)  (9) 2025.06.17
[Python] 주석(Comment)  (7) 2025.06.14
'냠냠쩝쩝/Python' 카테고리의 다른 글
  • [Python] 사용자 입력(Input)
  • [Python] 주석(Comment)
GOOROOM
GOOROOM
게임이 좋아서 게임 개발을 합니다.
  • GOOROOM
    GOOROOM
    GOOROOM
  • 글쓰기
    관리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 일상
      • 냠냠쩝쩝
        • C++
        • Python
      • 긁적긁적
        • Unreal Engine
        • Unity
      • OS
        • Windows
        • Mac
        • Android
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    material
    Android
    alt + tab
    ios
    에러
    navigate back
    앱 전환
    머터리얼
    SVN
    edge
    python
    랜드스케이프
    UE4
    esp 공간 확보
    keystore
    C++
    permission
    Admob
    backspace key
    패키징
    STL
    UE5
    엣지 불편
    백스페이스 키
    Mac
    엣지 탭
    landscape
    삭제
    xcode
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
GOOROOM
[Python] 문자열(String)
상단으로

티스토리툴바