파이썬에서 문자열(string)은 다양한 방법으로 구성, 변형할 수 있습니다. 특히 문자열 포매팅은 문자열 안에 어떤 값을 끼워넣는 방법입니다. 문자열 포매팅을 잘 활용하면 불필요한 문자열 늘리기를 방지하고, 지속적으로 변화가 필요한 문자열을 다룰 때 유용합니다.
파이썬 문자열 포매팅
문자열 포매팅은 크게 3가지로 사용합니다. 사용방법은 각기 다르지만 결국 문자열을 완성하기 때문에, 본인에게 맞는 방법을 사용하면 되겠습니다.
- %를 이용한 방법
- f string 사용 방법
- format 함수 사용 방법
%를 이용한 방법
%는 C 언어에서 처럼 출력할 값의 타입을 정의하고, 해당 위치에 출력한 값을 위치시킬 수 있는 포매팅 입니다.
# %d 등의 타입으로 정의한 후, % 뒤에 값을 삽입
str_test = "제 나이는 %d 살 입니다." % 3
print(str_test)
# 문자열도 바로 대입 가능
str_test = "저 %s은 남자입니다." % "홍길동"
위의 코드에서 %d 에 3이 대치되어 str_test 를 문자열(string) 타입으로 선언됩니다.
%를 이용하여 2개 이상의 값을 넣기 위해서는 % 뒤 괄호안에 (,)를 넣어 구분하면 됩니다.
# 2개이상 값을 이용할 때는 () 이용
str_test = "저 %s는 %d 살 입니다." % ("홍길동", 3)
print(str_test)
값이 아닌 변수를 대입하여 사용해도 무방 합니다. 2개 이상의 값을 넣어보도록 하겠습니다.
# 변수도 대입 가능
name = "홍길동"
age = 3
str_test = "저 %s은 %d 살 입니다." % (name, age)
print(str_test)
%를 사용할 때는 값의 타입에 따라 정의를 해줘야 합니다. 포맷 코드는 아래를 참조하시기 바랍니다.
코드 | 설명 |
%d | 정수(integer) |
%f | 실수(float) |
%s | 문자열(string) |
%c | 문자 1개(character) |
%o | 8진수 |
%x | 16진수 |
%% | %를 문자로 사용할 때 |
※ %s 의 경우, 어떠한 값을 사용하더라도 문자열로 형변환되어 사용할 수 있습니다.
f string 사용 방법
파이썬 3.6 이후 f string 포메팅을 사용할 수 있습니다. 문자열 앞에 f를 붙이고, {} 안에 값을 삽입하여 사용합니다.
# f를 문자열앞에 위치 시킨후 {}안에 값 혹은 변수 삽입
name = "홍길동"
age = 3
str_test = f"저 {name}은 {age} 살 입니다."
print(str_test)
재밌는 점은 이 {} 안에 수식을 함께 사용할 수 있습니다. 이를 표현식이라고 합니다.
# f string 포매킹은 표현식 사용 가능
name = "홍길동"
age = 3
str_test = f"저 {name}은 {age + 4} 살 입니다."
print(str_test)
f string 포매팅은 값이나 변수를 {} 안에 직관적으로 표현해주기 때문에 코드 해석력을 높일 수 있습니다.
format 함수 사용 방법
format 이라는 이름의 함수를 이용한 방법입니다. format 함수는 중복적으로 변수를 사용해 문자열을 구성할 경우 코드를 간결하게 짤 수 있는 장점이 있습니다.
# 문자열 끝에 .format 함수를 붙여 사용
name = "홍길동"
age = 3
str_test = "저 {}은 {} 살 입니다.".format(name, age)
print(str_test)
{} 안에 숫자로 위치를 지정하여 사용가능 합니다. 이 말은 format 의 파라미터를 인덱싱하여 사용할 수 있음을 의미합니다.
# {}안에 0, 1은 각각 format의 0번째 인자, 1번째 인자의 값이 들어감
name = "홍길동"
age = 3
str_test = "저 {0}은 {1} 살 입니다.".format(name, age)
# 인덱싱을 이용하여 변수명을 중복으로 사용할 필요 없음
str_test = "{0},{1},{0},{0}".format(name, age)
print(str_test)
또한 format 내에 변수명을 정의한 후 이를 {} 안에 삽입하여 사용할 수 있습니다.
# format 내에 변수명 정의하여 {}내에 사용가능
str_test = "저 {name}은 {age} 살 입니다.".format(name = "홍길동", age=3)
print(str_test)
마무리
문자열을 포매팅하는 작업은 코드를 짜다보면 다양하게 사용합니다. 위 3가지 방식을 모두 익혀두시면 각각의 용도에 따라 코드를 간결하고 직관적으로 작성할 수 있습니다.
오늘도 행복한 코딩생활 되시기 바라겠습니다. 감사합니다.
'개발 > python' 카테고리의 다른 글
python 올림 내림 반올림 함수, ceil(), floor(), round() 정리 (2) | 2022.04.23 |
---|---|
python 기존 파일에 내용 추가 방법, 열기 모드를 'a' 로 하기 (4) | 2022.04.14 |
python os 모듈, 알아두면 유용한 5가지 함수 (0) | 2022.04.06 |
python 타입 비교 및 확인, type 함수 대신 isinstance 함수 사용법 (0) | 2022.04.01 |
python 진행 사항 확인, progressbar 간단 사용 방법 (0) | 2022.03.29 |
댓글