2025-01-20T02:26:20

This commit is contained in:
2025-01-20 02:26:20 +09:00
parent 63d0b103bd
commit 9b77010fec
51 changed files with 3226 additions and 963 deletions

192
doc/03_03_string.md Normal file
View File

@@ -0,0 +1,192 @@
# 문자열
파이썬에서 문자열은 텍스트 데이터를 다루는 데 있어 가장 기본적인 자료형이라고 할 수 있습니다.
- 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)
한번 생성된 문자열은 변경할 수 없습니다. 문자열을 수정하려면 새로운 문자열을 생성해야 합니다.