본문 바로가기
두두 IT/파이썬

[PYTHON 2-3] 문자열(String)과 포매팅

by DoDo's 2026. 4. 14.
반응형

📚 자유자재로 텍스트 요리하기: 문자열(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)

변수 값을 문자열 중간중간에 세련되게 끼워 넣는 방법입니다. (순서대로 최신/가장 많이 쓰이는 방식입니다)

  1. f-string (강력 추천🌟): 앞에 f를 붙이고 중괄호 {} 안에 변수명을 쏙 넣습니다.
    f"이름: {name}, 나이: {age}"
  2. format() 함수: "이름: {}, 나이: {}".format(name, age)
  3. % 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: ③ (문자열과 숫자는 +로 더할 수 없음)

반응형