산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python format() 문자열 마스터하기: 명확한 예제로 완전 정복

Python 문자열 format()이란?

Python 문자열 format()은 플레이스홀더가 있는 문자열을 유효한 값으로 치환/변환해 최종 문자열 만드는 함수. Python 문자열 클래스 내장 함수로 포맷된 문자열 반환. 플레이스홀더는 중괄호로 정의.

예: “Welcome to Guru99 {}”.format(‘value here’).

이 튜토리얼에서 배울 내용:

Python format() 함수 문법

templatestring.format(val1, val2...)

매개변수

val1, val2 … : 중괄호 {} 형태 플레이스홀더 가진 템플릿 문자열에서 치환할 값들. 플레이스홀더는 문자열, 키/값 쌍, 정수, 부동소수, 문자 등 가능.

반환값:

중괄호 플레이스홀더 자리에 유효한 값 치환된 최종 문자열 반환.

플레이스홀더

템플릿 문자열 플레이스홀더는 중괄호로 표현, 예: {}. 빈 {}일 수도, 변수 예: {name}, 숫자 인덱스 예: {0}, {1} 등 가능.

문자열 format() 작동 원리

Python 문자열 format() 메서드는 원본 문자열에서 플레이스홀더 스캔. 플레이스홀더는 빈 중괄호({}), 위치 인수(인덱스 0, 1 예: {0}, {1}), 키워드 인수(변수명 중괄호 내 예: {name}, {age}) 가능. 빈 중괄호 경우 format 값들이 순서대로 치환. 첫 값 첫 빈 중괄호, 다음 값 다음 중괄호. 위치 인수는 인덱스 0부터 시작. format 내 값들 쉼표로 구분, 0번째 값이 format 내 첫 값 가리킴. 키워드 인수 경우(플레이스홀더 내 변수 사용), format 내 값 순서 상관없음. 변수명 기준으로 값 치환.

예제: 빈 플레이스홀더를 문자열 값으로 치환

아래 예제에서 문자열에 빈 중괄호({}). format에 주어진 값이 중괄호 안에 치환.

치환하려는 값은 문자열.

예제:

Python 문자열 포매팅으로 중괄호({})를 문자열 값으로 치환. 값은 format("Guru99")로 전달. 실행 시 중괄호 {}가 Guru99로 치환돼 최종 문자열 "Welcome to Guru99 tutorials" 얻음.

print ("Welcome to {} tutorials".format("Guru99"))

출력:

Welcome to Guru99 tutorials

예제: 빈 플레이스홀더를 숫자 값으로 치환

아래 예제에서 숫자 값을 원본 문자열에 치환. 숫자 필요한 위치에 중괄호({}) 추가. 실행 시 빈 중괄호({})가 숫자 값으로 치환.

예제:

format()으로 문자열 내 숫자 삽입도 가능. 예제는 format() 내 숫자 99로 빈 플레이스홀더 {} 치환하는 방법 보여줌.

print ("Welcome to Guru{} Tutorials".format("99"))

출력:

Welcome to Guru99 Tutorials

예제: 플레이스홀더 내 변수나 키워드 인수 사용

아래 예제처럼 중괄호 내 변수 사용 가능. 변수들 format() 내 정의. 실행 시 변수에 할당된 값이 원본 문자열에 치환.

예제:

중괄호 내 변수 사용 예: {name} {num}. name과 num 변수 값은 format 내 예: format(name="Guru", num="99"). name과 num 값이 {name}과 {num}에 치환.

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

출력:

Welcome to Guru99 Tutorials

예제: 플레이스홀더 내 인덱스/위치 인수 사용

값들은 0, 1, 2 같은 인덱스로 플레이스홀더 내 치환 가능. 값은 format()에서 순서대로 선택.

예제:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

출력:

Welcome to Guru99 Tutorials

예제: 문자열 내 다중 플레이스홀더 사용

이 예제에선 다중 빈 플레이스홀더 사용.

예제:

예제 문자열에 다중 빈 플레이스홀더, 각 플레이스홀더는 format() 내 값 참조. 첫 값 첫 플레이스홀더 치환, 이후 순차적.

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

출력:

Guru99 is totally new kind of learning experience!

플레이스홀더 내부 포매팅

플레이스홀더가 빈 것, 변수, 인덱스 가능함 보셨음. 플레이스홀더 내부에서 Python 문자열 포매팅 적용도 가능.

포맷 목록:

포맷설명예제
:d플레이스홀더 내부 사용 시 10진수 출력print("The binary to decimal value is : {:d}".format(0b0011))

출력:

The binary to decimal value is : 3
:b이진수 출력print("The binary value is : {:b}".format(500))

출력:

The binary value is : 111110100
:e과학적 표기법 출력 (소문자 e)print("The scientific value is : {:e}".format(40))

출력:

The scientific format value is : 4.000000e+01
:E과학적 표기법 출력 (대문자 E)print("The scientific value is : {:E}".format(40))

출력:

The scientific value is : 4.000000E+01
:f고정소수점 출력. 기본 6자리 소수. 2자리 필요 시 .2f 사용print("The value is : {:f}".format(40))

출력:

The value is : 40.000000

예: 소수 2자리까지.

print("The value is : {:.2f}".format(40))

출력:

The value is: 40.00
:o8진수 출력print("The value is : {:o}".format(500))

출력:

The value is : 764
:x16진수 소문자 출력print("The value is : {:x}".format(500))

출력:

The value is : 1f4
:X16진수 대문자 출력print("The value is : {:X}".format(500))

출력:

The value is : 1F4
:n숫자 포맷 출력print("The value is : {:n}".format(500.00))

출력:

The value is : 500
:%백분율 포맷. 기본 6자리 소수. 소수 없애려면 .0% 사용print("The value is : {:%}".format(0.80))

출력:

The value is : 80.000000%

소수 생략 예: {:.0%}

print("The value is : {:.0%}".format(0.80))
출력:

The value is: 80%
:_밑줄 천단위 구분자 (Python 3.6+)print("The value is {:_}".format(1000000))

출력:

The value is : 1_000_000
:,쉼표 천단위 구분자print("The value is : {:,}".format(1000000))

출력:

The value is : 1,000,000
: 양수 앞 공백 추가주어진 숫자 앞 공백/패딩 추가 예. 숫자 5는 원하는 공백 수.

print("The value is: {:5}".format(40))

출력:

The value is: 40
:-음수 앞 마이너스 기호{:-}로 숫자 앞 마이너스(-) 기호 출력 예.

print("The value is: {:-}".format(-40))

출력:

The value is: -40
:+양수 앞 플러스 기호{:+}로 숫자 앞 플러스(+) 기호 출력 예.

print("The value is: {:+}".format(40))

출력:

The value is: +40
:=등호 왼쪽 편에 +/- 기호 배치{:=}로 등호 앞 +/- 기호 출력 예.

print("The value is {:=}".format(-40))

출력:

The value is -40
:^결과 중앙 정렬{:^}로 텍스트 중앙 정렬 예. 숫자 10은 10칸 공간 추가해 중앙 정렬 보여줌.

print("The value {:^10} is positive value".format(40))

출력:

The value 40 is a positive value

10 사용해 최종 텍스트에 10칸 추가, 치환될 값이 10칸 사이 중앙 정렬.

:>결과 우측 정렬(:>10)로 10칸 공간, 치환 값 우측 정렬.

print("The value {:>10} is positive value".format(40))

출력:

The value 40 is positive value
:<결과 좌측 정렬(:<10)로 10칸 공간, 치환 값 좌측 정렬.

print("The value {:<10} is positive value".format(40))

출력:

The value 40 is positive value

클래스와 format() 사용

클래스 생성 후 .format Python 메서드 내 클래스 객체 사용 예. 플레이스홀더는 클래스 객체로 클래스 속성/멤버 참조.

예제:

format(c=MyClass())로 클래스 호출. 객체 c가 MyClass() 내 속성/메서드 참조.

class MyClass:
    msg1="Guru"
    msg2="Tutorials"
print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

출력:

Welcome to Guru99 Tutorials!

딕셔너리와 format() 사용

딕셔너리도 format() 내 사용 가능:

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

출력:

Welcome to Guru99 Tutorials!

변수 치환 패딩

string.format() 메서드로 플레이스홀더 내 패딩, 공백 추가 가능.

예제:

아래 예제 format()로 플레이스홀더 내 공백 추가. 공백 추가하려면 콜론(:) 뒤 중괄호 내 공백 수 지정. 플레이스홀더 모양: {:5}.

print("I have {:5} dogs and {:5} cat".format(2,1))

출력:

I have 2 dogs and 1 cat

인덱스도 플레이스홀더 내 사용 가능 예: {0:5}에서 0은 format 내 첫 값 참조.

print("I have {0:5} dogs and {1:5} cat".format(2,1))

출력:

I have 2 dogs and 1 cat

요약

python

  1. Java String.indexOf() 마스터: 부분문자열 위치 찾기 & 실전 예제
  2. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  3. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  4. Python String.find() 메서드 마스터하기: 문법, 예제, 대안 비교
  5. 파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례
  6. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  7. 파이썬 map() 함수 마스터하기: 문법, 예제, 모범 사례
  8. 파이썬 timeit()으로 실행 시간 측정하기: 실용 예제
  9. 파이썬 collections.Counter: 효율적 카운팅, 업데이트, 산술 연산
  10. 파이썬 type()과 isinstance() 이해하기: 실전 예제