실무에서 가장 많이 다루는 게 문자열이에요! 사용자 입력 처리, API 데이터 파싱, 로그 분석, CSV 파일 정제… 현업에서 매일 마주치는 작업들이에요. 😊 upper(), lower(), split(), replace(), f-string… 이런 거 잘 쓰면 코드가 정말 간결해집니다. 오늘 내용 잘 봐두세요!
(15분 완독 ⭐⭐)
🎯 오늘의 학습 목표
📚 사전 지식
🎯 학습 목표 1: 문자열(str) 만들기
한 줄 설명
문자열 = 글자들의 모음 (텍스트)
Python에서 문자열은 따옴표로 감싼 텍스트입니다.
문자열 만들기
1
2
3
4
5
6
7
8
9
| # 큰따옴표
name = "홍길동"
# 작은따옴표
city = '서울'
# 둘 다 똑같습니다!
message1 = "안녕하세요"
message2 = '안녕하세요'
|
💡 큰따옴표와 작은따옴표는 같은 기능입니다!
여러 줄 문자열
긴 텍스트는 세 개의 따옴표로
1
2
3
4
5
6
7
8
9
10
11
| # 세 개의 큰따옴표
message = """안녕하세요.
여러 줄의
텍스트를 쓸 수 있습니다."""
# 세 개의 작은따옴표
message2 = '''첫 번째 줄
두 번째 줄
세 번째 줄'''
print(message)
|
출력:
1
2
3
| 안녕하세요.
여러 줄의
텍스트를 쓸 수 있습니다.
|
🎯 학습 목표 2: 문자열 연결하기
덧셈 (+)으로 연결
1
2
3
4
5
6
7
8
9
| first = "홍"
last = "길동"
name = first + last
print(name) # 홍길동
# 띄어쓰기 추가
name = first + " " + last
print(name) # 홍 길동
|
반복 (*)하기
1
2
3
4
| star = "★"
line = star * 5
print(line) # ★★★★★
|
여러 개 한 번에
1
2
3
4
5
6
7
8
9
| first = "홍"
last = "길동"
city = "서울"
# 쉼표로 연결 (자동으로 띄어쓰기 추가)
print(first, last, city) # 홍 길동 서울
# +로 연결 (띄어쓰기 없음)
print(first + last + city) # 홍길동서울
|
🎯 학습 목표 3: 문자열 메서드 사용하기
대소문자 변환
1
2
3
4
5
6
7
8
9
10
11
12
13
| text = "Hello Python"
# 모두 대문자로
upper = text.upper()
print(upper) # HELLO PYTHON
# 모두 소문자로
lower = text.lower()
print(lower) # hello python
# 첫 글자만 대문자로
title = text.title()
print(title) # Hello Python
|
공백 제거
1
2
3
4
5
6
7
8
9
10
11
12
13
| text = " 안녕하세요 "
# 양쪽 공백 제거
clean = text.strip()
print(clean) # "안녕하세요"
# 왼쪽 공백만 제거
left = text.lstrip()
print(left) # "안녕하세요 "
# 오른쪽 공백만 제거
right = text.rstrip()
print(right) # " 안녕하세요"
|
문자열 나누기
1
2
3
4
5
6
7
8
9
| # 공백으로 나누기
text = "사과 바나나 포도"
fruits = text.split()
print(fruits) # ['사과', '바나나', '포도']
# 쉼표로 나누기
text2 = "서울,부산,대구"
cities = text2.split(",")
print(cities) # ['서울', '부산', '대구']
|
문자열 찾기
1
2
3
4
5
6
7
8
9
10
11
12
13
| text = "Python은 재미있어요"
# 있는지 확인
print("Python" in text) # True
print("Java" in text) # False
# 위치 찾기
pos = text.find("재미")
print(pos) # 7 (7번째 위치에 있음)
# 없으면 -1
pos2 = text.find("어려")
print(pos2) # -1
|
문자열 바꾸기
1
2
3
4
5
| text = "Python은 어려워요"
# 바꾸기
new_text = text.replace("어려워요", "재미있어요")
print(new_text) # Python은 재미있어요
|
🎯 학습 목표 4: 문자열 포맷팅 배우기
f-string (추천!)
1
2
3
4
5
6
7
8
9
| name = "홍길동"
age = 25
# f-string 사용
message = f"이름: {name}, 나이: {age}"
print(message) # 이름: 홍길동, 나이: 25
# 계산도 가능
print(f"내년 나이: {age + 1}") # 내년 나이: 26
|
1
2
3
4
5
| name = "홍길동"
age = 25
message = "이름: {}, 나이: {}".format(name, age)
print(message) # 이름: 홍길동, 나이: 25
|
% 포맷팅 (옛날 방식)
1
2
3
4
5
| name = "홍길동"
age = 25
message = "이름: %s, 나이: %d" % (name, age)
print(message) # 이름: 홍길동, 나이: 25
|
💡 f-string을 추천합니다!
🎯 학습 목표 5: 문자열 다루기 심화
줄바꿈하기
문자열 안에서 줄을 바꾸는 방법:
1
2
3
4
5
6
7
8
9
10
11
| # 방법 1: \n 사용 (권장)
print("첫 줄\n두 번째 줄")
# 방법 2: 여러 번 print
print("첫 줄")
print("두 번째 줄")
# 방법 3: 세 개 따옴표
text = """첫 줄
두 번째 줄"""
print(text)
|
출력:
문자열 길이 구하기
len() 함수로 문자열의 길이(글자 수)를 알 수 있습니다:
1
2
3
4
5
6
7
| text = "안녕하세요"
length = len(text)
print(f"길이: {length}") # 길이: 5
# 영어도 동일
name = "Python"
print(len(name)) # 6
|
특정 문자 개수 세기
.count() 메서드로 특정 문자가 몇 개 있는지 셀 수 있습니다:
1
2
3
4
5
6
7
| text = "banana"
count = text.count("a")
print(f"'a'의 개수: {count}") # 'a'의 개수: 3
# 단어도 셀 수 있음
sentence = "Python is fun. Python is easy."
print(sentence.count("Python")) # 2
|
문자열 슬라이싱 (미리보기)
문자열의 일부분을 잘라내는 방법입니다. Day 7에서 자세히 배웁니다!
1
2
3
4
5
6
7
8
9
10
11
| text = "Python"
# [시작:끝] - 시작 위치부터 끝 위치 전까지
print(text[0:3]) # Pyt (0, 1, 2번째)
print(text[2:5]) # tho (2, 3, 4번째)
# [시작:] - 시작 위치부터 끝까지
print(text[3:]) # hon (3번째부터 끝까지)
# [:끝] - 처음부터 끝 위치 전까지
print(text[:3]) # Pyt (처음부터 2번째까지)
|
실용 예제:
1
2
3
4
5
6
7
8
| phone = "01012345678"
# 전화번호를 구분해서 자르기
area = phone[0:3] # 010
front = phone[3:7] # 1234
back = phone[7:] # 5678
print(f"{area}-{front}-{back}") # 010-1234-5678
|
⚠️ 주의: 인덱스는 0부터 시작합니다!
text[0] = 첫 번째 글자 text[1] = 두 번째 글자
💻 실습 예제
예제 1: 자기소개 만들기
1
2
3
4
5
6
7
8
9
10
11
12
| name = "홍길동"
age = "25"
job = "학생"
# 방법 1: 쉼표로 연결
print("이름:", name)
print("나이:", age)
print("직업:", job)
# 방법 2: +로 연결
intro = "이름: " + name + ", 나이: " + age + ", 직업: " + job
print(intro)
|
출력:
1
2
3
4
| 이름: 홍길동
나이: 25
직업: 학생
이름: 홍길동, 나이: 25, 직업: 학생
|
예제 2: 이메일 만들기
1
2
3
4
5
| username = "hong"
domain = "example.com"
email = username + "@" + domain
print(email) # hong@example.com
|
예제 3: 구분선 만들기
1
2
3
4
5
6
7
8
| # 화려한 구분선
line1 = "=" * 30
line2 = "-" * 30
line3 = "*" * 30
print(line1)
print("중요한 메시지")
print(line1)
|
출력:
1
2
3
| ==============================
중요한 메시지
==============================
|
💡 실전 팁 & 주의사항
💡 Tip 1: 따옴표 안에 따옴표
1
2
3
4
5
6
7
8
9
10
| # ❌ 에러 발생!
message = "He said "Hello""
# ✅ 해결 방법 1: 다른 따옴표 사용
message = "He said 'Hello'"
# ✅ 해결 방법 2: 역슬래시(\) 사용
message = "He said \"Hello\""
print(message) # He said "Hello"
|
💡 Tip 2: 문자열과 숫자 합치기
1
2
3
4
5
6
7
8
9
10
11
12
13
| name = "홍길동"
age = 25
# ❌ 에러 발생!
message = name + "의 나이는 " + age
# ✅ 해결 방법 1: str()로 변환
message = name + "의 나이는 " + str(age)
# ✅ 해결 방법 2: f-string 사용 (추천)
message = f"{name}의 나이는 {age}"
print(message) # 홍길동의 나이는 25
|
💡 Tip 3: 문자열은 변경 불가
1
2
3
4
5
6
7
8
| text = "Python"
# ❌ 에러 발생! (문자열은 수정 불가)
text[0] = "J"
# ✅ 새로운 문자열 만들기
new_text = "J" + text[1:]
print(new_text) # Jython
|
🧪 연습 문제
문제 1: 전화번호 포맷
전화번호를 보기 좋게 만드세요.
- 입력: “01012345678”
- 출력: “010-1234-5678”
💡 힌트
위에서 배운 문자열 슬라이싱을 사용하세요!
phone[0:3] - 010 phone[3:7] - 1234 phone[7:] - 5678 -로 연결
✅ 정답
1
2
3
4
5
6
7
8
9
| phone = "01012345678"
# 방법 1: 슬라이싱
formatted = phone[0:3] + "-" + phone[3:7] + "-" + phone[7:]
print(formatted) # 010-1234-5678
# 방법 2: f-string
formatted2 = f"{phone[0:3]}-{phone[3:7]}-{phone[7:]}"
print(formatted2) # 010-1234-5678
|
문제 2: 이름 꾸미기
자신의 이름을 별(★)과 선(=)으로 예쁘게 꾸며서 출력하세요.
요구사항:
- 별 5개를 첫 줄과 마지막 줄에 출력
- 긴 선(=을 20개)으로 구분선 만들기
- 가운데에 “OOO님 환영합니다!” 메시지 출력
💡 힌트
*를 사용해서 별을 반복: "★" * 5 =를 반복해서 선 만들기: "=" * 20 - f-string으로 이름 넣기:
f"{name}님 환영합니다!"
✅ 정답
1
2
3
4
5
6
7
8
9
10
11
| name = "홍길동"
# 별로 꾸미기
star = "★" * 5
line = "=" * 20
print(star)
print(line)
print(f" {name}님 환영합니다!")
print(line)
print(star)
|
출력:
1
2
3
4
5
| ★★★★★
====================
홍길동님 환영합니다!
====================
★★★★★
|
문제 3: 대소문자 바꾸기
다음 영어 문장 "Hello Python World"을 여러 가지 방법으로 변환해서 출력하세요.
출력해야 할 것:
- 원본 문장
- 모두 대문자로 변환
- 모두 소문자로 변환
- 각 단어의 첫 글자만 대문자로 변환
💡 힌트
문자열 메서드를 사용하세요:
.upper() - 모두 대문자로 .lower() - 모두 소문자로 .title() - 각 단어의 첫 글자만 대문자로
✅ 정답
1
2
3
4
5
6
| text = "Hello Python World"
print("원본:", text)
print("대문자:", text.upper())
print("소문자:", text.lower())
print("단어 첫 글자만 대문자:", text.title())
|
출력:
1
2
3
4
| 원본: Hello Python World
대문자: HELLO PYTHON WORLD
소문자: hello python world
단어 첫 글자만 대문자: Hello Python World
|
📝 오늘 배운 내용 정리
- 문자열 만들기:
" 또는 '로 감싸기 - 연결하기:
+ (연결), * (반복) - 메서드: upper(), lower(), strip(), split(), replace()
- 포맷팅: f-string이 가장 편함!
- len(): 문자열 길이 구하기
🔗 관련 자료
📚 이전 학습
Day 5: 숫자 다루기 ⭐
어제는 int와 float으로 숫자를 다루는 방법을 배웠습니다!
📚 다음 학습
Day 7: 리스트 다루기 (list) ⭐⭐
내일은 여러 개의 데이터를 한 번에 담는 리스트를 배웁니다!
“늦었다고 생각할 때가 가장 빠른 시기입니다!” 🚀
| Day 6/100 | Phase 1: Python 시작하기 | #100DaysOfPython |