📚 자유자재로 텍스트 요리하기: 문자열(String)과 포매팅
1. 문자열 만들기 기초
- 작은/큰따옴표로 감쌉니다.
- 여러 줄 문자열: 따옴표 3개(""" 또는 ''')로 감싸면 엔터(줄바꿈)가 그대로 반영됩니다.
- 긴 코드를 여러 줄로 나눠 쓸 때는 맨 끝에 \를 붙이면 컴퓨터가 한 줄로 인식합니다.
💡 필수 이스케이프 문자 (Escape Character)
화면에 보이지 않는 키보드 동작을 문자로 표현합니다.
- \n : 엔터(줄바꿈)
- \t : 탭(Tab)
- \\ : 역슬래시(\) 자체를 출력하고 싶을 때
- r-string: 글자 앞에 r을 붙이면 이스케이프 문자를 무시하고 글자 그대로 출력합니다. 파일 경로 적을 때 아주 유용합니다! (file_path = r"C:\test\note.txt")
2. 문자열 연산자
- + : 문자열끼리 이어 붙입니다. (숫자랑은 못 더해요!)
- * : 문자열을 해당 숫자만큼 반복합니다. ("안녕" * 3 ➔ "안녕안녕안녕")
- in / not in : 특정 단어가 안에 포함되어 있는지 확인합니다. ("금천구" in address)
- len(문자열) : 글자의 총 개수(길이)를 숫자로 알려줍니다.
3. 인덱싱(Indexing)과 슬라이싱(Slicing) ★핵심★
파이썬의 글자들은 0번부터 시작하는 방 번호(Index)를 가집니다.
- 인덱싱: 글자 하나만 뽑아오기 (s[0]은 첫 글자, s[-1]은 맨 끝 글자)
- 참고: 문자열은 값을 일부만 수정(s[0] = "가")할 수 없는 불변(Immutable) 타입입니다.
- 슬라이싱: [시작번호 : 종료번호 : 간격]
- ★종료 번호의 글자는 포함되지 않습니다! (종료번호 - 1 까지만)
- s[:5] ➔ 처음(0)부터 4번 인덱스까지
- s[5:] ➔ 5번 인덱스부터 맨 끝까지
- s[::-1] ➔ 문자열을 완전히 거꾸로 뒤집습니다.
4. 포맷 스트링 (Format String)
변수 값을 문자열 중간중간에 세련되게 끼워 넣는 방법입니다. (순서대로 최신/가장 많이 쓰이는 방식입니다)
- f-string (강력 추천🌟): 앞에 f를 붙이고 중괄호 {} 안에 변수명을 쏙 넣습니다.
f"이름: {name}, 나이: {age}" - format() 함수: "이름: {}, 나이: {}".format(name, age)
- % formatting (과거 방식): "이름: %s, 나이: %d, 키: %.2f" % (name, age, tall)
(%s는 문자열, %d는 정수, %f는 실수, %.2f는 소수점 둘째자리까지)
5. 문자열 필수 메소드 (사전처럼 꺼내 쓰세요!)
문자열 변수 뒤에 .을 찍어 사용하는 유용한 도구들입니다.
| 메소드 | 설명 | 사용 예시 |
| split(구분자) | 특정 문자를 기준으로 문자열을 잘라 리스트로 만듦 (기본은 공백) | "사과 배".split() ➔ ['사과', '배'] |
| strip() | 양쪽 끝의 더러운 공백/엔터 제거 (lstrip: 왼쪽, rstrip: 오른쪽) | " 안녕 ".strip() ➔ "안녕" |
| replace(A, B) | 문자열 내의 A를 찾아 B로 바꿈 | "ab c".replace(" ", "") ➔ "abc" |
| count(A) | 특정 문자(A)가 몇 개 들어있는지 셈 | "apple".count("p") ➔ 2 |
| find(A) | 특정 문자의 위치 번호(index) 반환 | "abc".find("b") ➔ 1 |
| upper() / lower() | 모든 글자를 대문자로 / 소문자로 변환 | "a".upper() ➔ "A" |
| capitalize() | 맨 앞글자만 대문자로 변환 | "python".capitalize() ➔ "Python" |
| isupper() / islower() | 모두 대문자인지 / 소문자인지 확인 (True/False 반환) | "abc".islower() ➔ True |
| startswith() / endswith() | 특정 문자로 시작하는지 / 끝나는지 확인 | "www.a".startswith("www") ➔ True |
📝 [3편 복습 퀴즈]
Q1. 여러 줄의 글을 엔터(줄바꿈) 포함하여 그대로 하나의 문자열 변수에 담으려고 합니다. 텍스트 양끝을 감싸야 하는 기호는?
① 작은따옴표 1개 (')
② 중괄호 ({})
③ 작은따옴표 또는 큰따옴표 3개 (''' 또는 """)
④ 대괄호 ([])
Q2. jumin = "901211-1027213" 에서 성별을 나타내는 뒤의 7자리("1027213")만 슬라이싱으로 정확히 가져오는 코드는?
① jumin[7:]
② jumin[6:]
③ jumin[7:13]
④ jumin[:7]
Q3. 파이썬 3.6부터 도입되었으며, 문자열 앞에 특정 알파벳을 붙여 가장 직관적으로 변수를 문자열에 끼워 넣는 방법은?
① r-string
② f-string
③ format()
④ % 포매팅
Q4. 사용자에게 입력받은 아이디 " hong123 \n" 의 양쪽 공백과 줄바꿈을 깔끔하게 제거해 주는 문자열 전용 메소드는?
① split()
② replace()
③ find()
④ strip()
Q5. 다음 중 에러가 발생하는 파이썬 코드는 무엇일까요?
① "안녕" * 3
② "나이: " + "30"
③ "나이: " + 30
④ int("30") + 30
💡 정답 확인
Q1: ③ / Q2: ① (하이픈이 6번 인덱스이므로 7번부터 끝까지) / Q3: ② / Q4: ④ / Q5: ③ (문자열과 숫자는 +로 더할 수 없음)
'두두 IT > 파이썬' 카테고리의 다른 글
| [PYTHON 3-2] 변하지 않는 Tuple & 키-값 쌍의 Dictionary (0) | 2026.04.15 |
|---|---|
| [PYTHON 3-1] 여러 데이터를 하나로! 리스트(List) (0) | 2026.04.15 |
| [PYTHON 2-2] 데이터 타입과 연산자 (0) | 2026.04.14 |
| [PYTHON 2-1] 데이터를 담는 그릇, '변수(Variable) (0) | 2026.04.14 |
| [PYTHON 1-3] 파이썬 코딩은 어떻게 하고, 설치는 어떻게 할까? (1) | 2026.04.14 |