Files
python-examples/doc/03_03_string.md
2025-01-20 02:26:20 +09:00

5.1 KiB

문자열

파이썬에서 문자열은 텍스트 데이터를 다루는 데 있어 가장 기본적인 자료형이라고 할 수 있습니다.

  • str

    문자열은 홑따옴표 또는 쌍따옴표로 묶어서 표현합니다. 삼중 따옴표(홑따옴표 또는 쌍따옴표)로 여러 줄 문자열을 표현할 수 있습니다.

문자열의 생성

# 작은따옴표 사용
string1 = 'Hello, world!'

# 큰따옴표 사용
string2 = "Python is fun!"

# 여러 줄 문자열 (""" 또는 ''' 사용)
multiline_string = """
This is a multi-line string.
You can use triple quotes to create them.
"""

인덱싱

문자열의 특정 문자에 접근하는 방법입니다. 파이썬은 0부터 시작하는 인덱스를 사용합니다.

string = "hello"
print(string[0])  # h 출력
print(string[-1])  # o 출력 (뒤에서 첫 번째 문자)

슬라이싱

문자열의 일부분을 추출하는 방법입니다.

string = "hello world"
print(string[1:5])  # ello 출력 (1번 인덱스부터 5번 인덱스 바로 앞까지)

연산

+ 연산자를 사용하여 문자열을 연결할 수 있습니다.


* 연산자를 사용하여 문자열을 반복할 수 있습니다.

repeat_string = "hello" * 3  # hellohellohello

문자열 메서드

파이썬은 문자열을 다루기 위한 다양한 메소드를 제공합니다.

  • replace(바꿀문자열, 새문자열)

    문자열 내의 특정 문자열을 다른 문자열로 바꿈

  • translate()

    문자열 내의 문자를 치환합니다.

    table = str.maketrans('aeiou', 'AEIOU')
    a = 'i like an apple'.translate(table) # I lIkE An ApplE
    
  • split()

    문자열을 특정 구분자를 기준으로 나누어 리스트로 반환. 기본적으로, 공백을 기준으로 문자열을 분리합니다.

    a = 'apple,orange,mango,banana'.split(',')
    
  • join(리스트)

    리스트의 요소들을 하나의 문자열로 합침

    '-'.join(['apple','orange','mango','banana'])
    
  • upper(), lower(), capitalize(), casefold(), swapcase()

    문자열을 대문자 또는 소문자로 변환

  • strip(), lstrip(), rstrip()

    문자열의 왼쪽, 오른쪽, 또는 양쪽의 공백을 제거합니다. 매개변수에 제거할 문자목록 지정할 수도 있습니다.

    '...hello'.strip('.')
    
  • endswith(), startswith()

  • ljust(길이), rjust(길이), center(길이)

    정렬

    'apple'.ljust(10) # 'apple     '
    
  • zfill(길이)

    지정된 길이 맞춰서 0으로 채웁니다.

  • find(찾을문자열), rfind()

    문자열 내에서 특정 문자열의 위치를 찾음. 주어진 문자열이 처음 나타나는 인덱스를 반환하며, 찾는 문자열이 없으면 -1을 반환합니다.

  • index(), rindex()

    find()와 마찬가지로 찾는 문자열의 인덱스를 반환하지만, 문자열을 찾지 목한 떄에는 오류가 발생됩니다.

  • count(문자열)

    주어진 문자열의 갯수를 셉니다.

  • encode(), decode()

  • isalpha(), isdigit(), isnumeric(), isupper(), islower()

형식화 문자열

name = 'Charlie'
a = 'Hello, %s.' % name

age = 14
b = "I'm %d years old." % age

value = 3.3
c = 'The price is %f dollars.' % value
c = 'The price is %.2f dollars.' % value # 소수점 이하 자릿수를 지정

d = '%s is %d years old.' % (name, age) # 여러 개일 떄에는 괄호로 묶습니다.

format()

format 함수는 파이썬에서 문자열 내에 변수나 값을 삽입하여 다양한 형식의 문자열을 생성하는 데 사용됩니다. 즉, 미리 정의된 틀에 값을 채워 넣는다고 생각하면 됩니다.

문자열 = "안녕하세요, {}입니다. 저는 {}살입니다.".format(이름, 나이)

위 예시에서 {} 부분에 format() 함수의 인수가 차례대로 대입됩니다.

{} 안에 숫자를 넣어 인수의 순서를 지정할 수 있습니다.

print("{1} {0}".format("world", "Hello"))  # Hello world 출력

{} 안에 키워드를 넣어 인수를 지정할 수 있습니다.

print("이름: {name}, 나이: {age}".format(name="홍길동", age=30))

숫자를 특정 형식으로 출력할 수 있습니다.

print("원주율은 {:.2f}입니다.".format(3.141592))  # 원주율은 3.14입니다.

f-string

Python 3.6이상에서는 format 함수와 비슷한 기능을 더 간결하게 사용할 수 있는 방법이 있습니다.

문자열 앞에 포맷 지시자('f')를 붙여주면 됩니다.

name = "홍길동"
age = 30
print(f"안녕하세요, {name}입니다. 저는 {age}살입니다.")
# 상품 정보 출력
product = {"name": "아이폰 14", "price": 1500000, "stock": 100}
print(f"상품명: {product['name']}, 가격: {product['price']}원, 재고: {product['stock']}개")
import datetime
today = datetime.datetime.now()
print(f"오늘은 {today:%Y년 %m월 %d일}입니다.")

문자열은 불변(immutable)

한번 생성된 문자열은 변경할 수 없습니다. 문자열을 수정하려면 새로운 문자열을 생성해야 합니다.