# 문자열 파이썬에서 문자열은 텍스트 데이터를 다루는 데 있어 가장 기본적인 자료형이라고 할 수 있습니다. - str 문자열은 홑따옴표 또는 쌍따옴표로 묶어서 표현합니다. 삼중 따옴표(홑따옴표 또는 쌍따옴표)로 여러 줄 문자열을 표현할 수 있습니다. ## 문자열의 생성 ```python # 작은따옴표 사용 string1 = 'Hello, world!' # 큰따옴표 사용 string2 = "Python is fun!" # 여러 줄 문자열 (""" 또는 ''' 사용) multiline_string = """ This is a multi-line string. You can use triple quotes to create them. """ ``` ## 인덱싱 문자열의 특정 문자에 접근하는 방법입니다. 파이썬은 0부터 시작하는 인덱스를 사용합니다. ```python string = "hello" print(string[0]) # h 출력 print(string[-1]) # o 출력 (뒤에서 첫 번째 문자) ``` ## 슬라이싱 문자열의 일부분을 추출하는 방법입니다. ```python string = "hello world" print(string[1:5]) # ello 출력 (1번 인덱스부터 5번 인덱스 바로 앞까지) ``` ## 연산 `+` 연산자를 사용하여 문자열을 연결할 수 있습니다. ```python ``` `*` 연산자를 사용하여 문자열을 반복할 수 있습니다. ```python repeat_string = "hello" * 3 # hellohellohello ``` ## 문자열 메서드 파이썬은 문자열을 다루기 위한 다양한 메소드를 제공합니다. - replace(바꿀문자열, 새문자열) 문자열 내의 특정 문자열을 다른 문자열로 바꿈 - translate() 문자열 내의 문자를 치환합니다. ```python table = str.maketrans('aeiou', 'AEIOU') a = 'i like an apple'.translate(table) # I lIkE An ApplE ``` - split() 문자열을 특정 구분자를 기준으로 나누어 리스트로 반환. 기본적으로, 공백을 기준으로 문자열을 분리합니다. ```python a = 'apple,orange,mango,banana'.split(',') ``` - join(리스트) 리스트의 요소들을 하나의 문자열로 합침 ```python '-'.join(['apple','orange','mango','banana']) ``` - upper(), lower(), capitalize(), casefold(), swapcase() 문자열을 대문자 또는 소문자로 변환 - strip(), lstrip(), rstrip() 문자열의 왼쪽, 오른쪽, 또는 양쪽의 공백을 제거합니다. 매개변수에 제거할 문자목록 지정할 수도 있습니다. ```python '...hello'.strip('.') ``` - endswith(), startswith() - ljust(길이), rjust(길이), center(길이) 정렬 ```python 'apple'.ljust(10) # 'apple ' ``` - zfill(길이) 지정된 길이 맞춰서 0으로 채웁니다. - find(찾을문자열), rfind() 문자열 내에서 특정 문자열의 위치를 찾음. 주어진 문자열이 처음 나타나는 인덱스를 반환하며, 찾는 문자열이 없으면 -1을 반환합니다. - index(), rindex() `find()`와 마찬가지로 찾는 문자열의 인덱스를 반환하지만, 문자열을 찾지 목한 떄에는 오류가 발생됩니다. - count(문자열) 주어진 문자열의 갯수를 셉니다. - encode(), decode() - isalpha(), isdigit(), isnumeric(), isupper(), islower() ## 형식화 문자열 ```python 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 함수는 파이썬에서 문자열 내에 변수나 값을 삽입하여 다양한 형식의 문자열을 생성하는 데 사용됩니다. 즉, 미리 정의된 틀에 값을 채워 넣는다고 생각하면 됩니다. ```python 문자열 = "안녕하세요, {}입니다. 저는 {}살입니다.".format(이름, 나이) ``` 위 예시에서 {} 부분에 format() 함수의 인수가 차례대로 대입됩니다. {} 안에 숫자를 넣어 인수의 순서를 지정할 수 있습니다. ```python print("{1} {0}".format("world", "Hello")) # Hello world 출력 ``` {} 안에 키워드를 넣어 인수를 지정할 수 있습니다. ```python print("이름: {name}, 나이: {age}".format(name="홍길동", age=30)) ``` 숫자를 특정 형식으로 출력할 수 있습니다. ```python print("원주율은 {:.2f}입니다.".format(3.141592)) # 원주율은 3.14입니다. ``` ## f-string Python 3.6이상에서는 format 함수와 비슷한 기능을 더 간결하게 사용할 수 있는 방법이 있습니다. 문자열 앞에 포맷 지시자('f')를 붙여주면 됩니다. ```python name = "홍길동" age = 30 print(f"안녕하세요, {name}입니다. 저는 {age}살입니다.") ``` ```python # 상품 정보 출력 product = {"name": "아이폰 14", "price": 1500000, "stock": 100} print(f"상품명: {product['name']}, 가격: {product['price']}원, 재고: {product['stock']}개") ``` ```python import datetime today = datetime.datetime.now() print(f"오늘은 {today:%Y년 %m월 %d일}입니다.") ``` ## 문자열은 불변(immutable) 한번 생성된 문자열은 변경할 수 없습니다. 문자열을 수정하려면 새로운 문자열을 생성해야 합니다.