<정처기> Python 5. 문자열과 포맷팅 3가지 방법

빡찌's avatar
Nov 11, 2024
<정처기> Python 5. 문자열과 포맷팅 3가지 방법

Python에서의 문자열은 무엇인가?

: 문자들의 집합으로 문자의 순서를 유지한 채로 저장되는 데이터 타입(인덱스로 접근 가능)
작은 따옴표 또는 큰 따옴표로 감싸서 표현 할 수 있음(호환가능)
 
quote = "그가 말하길, '파이썬은 정말 놀라워!'" print(quote) quote = '그녀가 대답하길, "정말 그래!"' print(quote)
⇒ “ ‘ 둘다 사용해야 할 때는 바깥에 감싼것과는 다른 형태여야 함
 

C언어와는 배열을 다르게 취급한다.

<C언어>
#include <stdio.h> int main() { // 문자열 배열을 선언하고 초기화 char fruits_and_veggies[3][10] = {"apple", "banana", "carrot"}; // 배열의 각 요소 출력 printf(" : %s\n", fruits_and_veggies[0]); 첫 번째 문자열 printf(" : %s\n", fruits_and_veggies[1]); 두 번째 문자열 printf(" : %s\n", fruits_and_veggies[2]); 세 번째 문자열 return 0; }
<Python>
C보다 단순한 구조.
문자열 하나에만 접근해도 전체가 뽑혀나옴
# 문자열 리스트 선언 및 초기화 fruits_and_veggies = ["apple", "banana", "carrot"] # 리스트의 각 요소 출력 print(f" : {fruits_and_veggies[0]}") 첫 번째 문자열 print(f" : {fruits_and_veggies[1]}") 두 번째 문자열 print(f" : {fruits_and_veggies[2]}")
 

문자열 템플릿이란?

문자열을 출력할 때 변수나 함수의 리턴값을 한번에 표기하고 싶다!
>>> 특정한 틀(문자열 템플릿)에 맞춰서 출력해보자!
 
문자열 템플릿의 대표적인 3가지 방법
  1. %를 통한 포맷팅
  1. str.format()을 통한 포맷팅
  1. f-string
 
정처기에서 어떤 형태가 잘 나올까?
>>> 당연히 일반 변수, 함수, 배열(Python은 list)

포맷팅 1. %를 사용한 방법(C언어 스타일)

name = "홍길동" age = 30 #함수 def next_year_age(age): return age + 1 fruits_and_veggies = ["apple", "banana", "carrot"]
formatted_string = "안녕하세요, 제 이름은 %s입니다. 내년에는 %d살이 됩니다. I have a %s, a %s, and a %s." % ( name, next_year_age(age), fruits_and_veggies[0], fruits_and_veggies[1], fruits_and_veggies[2] ) print(formatted_string)
⇒ 문장 다섯군데에 값을 집어 넣겠다.
포인트!!
 
"안녕하세요, 제 이름은 %s입니다. 내년에는 %d살이 됩니다. I have a %s, a %s, and a %s."
이까지가 문자 템플릿이다.
 
문자 템플릿% (변,수,들) 처럼 템플릿이 끝나고 %를 넣어줘야함.
저자리 비워두고 빈칸 넣기 문제가 나올 수 있음~
 

포맷팅 2. str.format()을 활용

name = "홍길동" age = 30 #함수 def next_year_age(age): return age + 1 fruits_and_veggies = ["apple", "banana", "carrot"]
formatted_string = "안녕하세요, 제 이름은 {}입니다. 내년에는 {}살이 됩니다. I have a {}, a {}, and a {}.".format( name, next_year_age(age), fruits_and_veggies[0], fruits_and_veggies[1], fruits_and_veggies[2] ) print(formatted_string)
값을 넣을 부분을 {} 중괄호로 표현함
즉 “____” 이부분은 템플릿으로 함수의 str을 나타내고
그 뒤에 .format(______) 이런 구성입니다잉
 

포맷팅 3. f-string을 활용

name = "홍길동" age = 30 #함수 def next_year_age(age): return age + 1 fruits_and_veggies = ["apple", "banana", "carrot"]
f”문자열” ⇒ f-string기법을 사용하겠다는 뜻
formatted_string = f"안녕하세요, 제 이름은 {name}입니다. 내년에는 {next_year_age(age)}살이 됩니다. I have a {fruits_and_veggies[0]}, a {fruits_and_veggies[1]}, and a {fruits_and_veggies[2]}." print(formatted_string)
바로 바로 값에 집어 넣음 {변수명}
 

외울 것 요약

  • 파이썬에서 문자열은 단순히 하나의 요소일 뿐이다
  • C언어와 달리 배열 크기를 이중으로 선언하지 않음
  • 문자열 포맷팅으로 변수, 함수값, 배열의 요소 등에 직접 접근 가능
%를 이용한 방법
: C언어와 비슷하게 출력하기 때문에 익숙
(주의: 앞에서 부터 순서대로 들어갔고, 값이 여러개일 때는 변수 부분을 (괄호)로 묶어줬다.)
 
.format()
: 앞에 전체가 문자열이어야 하고 문자열 부분에 {}로 구멍을 뚫어서
포맷팅을 완성하고 뒤에서 변수를 넣었다
(주의: 변수는 format뒤의 괄호에 들어가고 순서대로 입력 받았다)
 
f-string
: 문자열 앞에 f로 표기하고 변수를 직접 입력했다
순서대로가 아니라 내가 직접 {변수명}으로 넘어준다.
 
Share article

prettytree