파이썬의 문자열 format()이란?
파이썬의 String format()은 최종 문자열에서 유효한 값이 있는 자리 표시자로 문자열을 교체, 대체 또는 변환하는 데 사용되는 함수입니다.
형식화된 문자열을 출력으로 반환하는 Python 문자열 클래스의 내장 함수입니다. 문자열 내부의 자리 표시자는 중괄호로 정의됩니다.
예를 들어 "Welcome to Entity{}".format('value here') 와 같은 형식이 됩니다.
목차
Python의 format() 함수 구문
templatestring.format(val1, val2...)
매개변수
val1, val2 … : 중괄호 {} 형식의 자리 표시자가 있는 지정된 템플릿 문자열에서 대체해야 하는 값입니다. 자리 표시자는 문자열, 키/값 쌍, 정수, 부동 소수점 숫자, 문자 등이 될 수 있습니다.
반환 값:
중괄호로 묶인 자리 표시자 대신 유효한 값이 대체된 최종 문자열을 반환합니다.
자리 표시자
템플릿 문자열의 자리 표시자는 중괄호를 사용하여 표시됩니다(예: {}). 자리 표시자는 비어 있는 {}이거나 {name} 등의 변수를 포함하거나 {0} , {1} 등의 숫자 색인을 포함할 수 있습니다.
string format()은 어떻게 작동합니까?
Python String format() 메서드는 자리 표시자를 위해 원본 문자열을 스캔합니다. 자리 표시자는 빈 중괄호({}), 위치 인수일 수 있습니다. 즉, 문자열은 예를 들어 {0}, {1} 등에 대해 인덱스 0, 1을 갖는 자리 표시자를 가질 수 있습니다.
키워드 인수의 경우 변수 이름은 중괄호 안에 표시됩니다(예: {name}, {age}). 중괄호가 비어 있는 경우 형식의 값이 중괄호 내부에서 순서대로 대체됩니다.
첫 번째 값은 첫 번째 빈 중괄호로 대체되고 그 뒤에 오는 중괄호가 표시됩니다. 위치 인수의 경우 인덱스는 0부터 시작하는 식으로 진행됩니다. 값은 쉼표로 구분된 형식으로 사용할 수 있으며 0 번째 값은 형식 내부의 첫 번째 값을 가리킵니다.
키워드 인수의 경우, 즉 자리 표시자 내부에 변수를 사용할 때 필요에 따라 형식 내에서 값의 순서를 가질 수 있습니다.
format()에 있는 변수 이름에 따라 값이 바뀌므로 순서는 중요하지 않습니다. 다음은 문자열 내부의 자리 표시자를 비어 있고 위치 지정적으로 사용하고 키워드 또는 변수를 사용하는 방법에 대한 몇 가지 예입니다.
예: 빈 자리 표시자가 문자열 값으로 대체됨
아래 예에서 문자열에는 빈 중괄호({})가 있습니다. 형식에 지정된 값은 중괄호({}) 내에서 대체됩니다.
교체하려는 값은 문자열입니다.
Python에서 문자열 형식 지정을 사용하여 중괄호({})를 문자열 값으로 대체하기를 원합니다. 값은 format("Entity")에 지정됩니다. 실행 시 중괄호 {}가 Entity로 대체되고 "Welcome to Entity tutorials" 라는 최종 문자열을 얻게 됩니다.
## 입력
print ("Welcome to {} tutorials".format("Entity"))
## 출력
Welcome to Entity tutorials
예: 숫자 값으로 대체된 빈 자리 표시자
아래 예에서는 숫자 값이 원래 문자열 내에서 대체되기를 원합니다. 숫자 값이 필요한 곳에 중괄호({})를 추가합니다. 실행되면 빈 중괄호({})가 숫자 값으로 바뀝니다.
format()을 사용하여 문자열 안에 숫자를 삽입할 수도 있습니다. 이 예시는 빈 자리 표시자 {}를 format() 내부에 있는 숫자 1234로 바꾸는 방법을 보여줍니다.
## 입력
print ("Welcome to Entity{} Tutorials".format("1234"))
## 출력
Welcome to Entity1234 Tutorials
예: 자리 표시자 내에서 변수 또는 키워드 인수 사용
아래 예와 같이 중괄호 안에 변수를 사용할 수도 있습니다. 변수는 format() 내부에 정의됩니다. 따라서 실행 시 변수에 할당된 값은 원래 문자열 내부에서 대체됩니다.
중괄호 안에 변수를 사용할 수 있습니다(예: {name} {num}). name 및 num 변수에 대한 값은 형식(예: format(name=”Entity”, num=”1234″)) 내에서 사용할 수 있습니다. name 및 num에 지정된 값은 {name} 및 {num} 내부에서 대체됩니다.
## 입력
print ("Welcome to {name}{num} Tutorials".format(name="Entity", num="1234"))
## 출력
Welcome to Entity1234 Tutorials
예: 자리 표시자 내에서 인덱스 또는 위치 인수 사용
값은 자리 표시자 내부에 0, 1, 2와 같은 인덱스를 사용하여 바꿀 수 있습니다. 값은 아래 예제와 같이 format()에서 순서대로 선택됩니다.
## 입력
print ("Welcome to {0}{1} Tutorials".format("Entity","1234"))
## 출력
Welcome to Entity1234 Tutorials
예: 문자열 내에서 여러 자리 표시자 사용
이 예에서는 여러 개의 빈 자리 표시자를 사용할 것입니다.
예제에 사용된 문자열에는 여러 개의 빈 자리 표시자가 있으며 각 자리 표시자는 format() 내부의 값을 참조합니다. 첫 번째 값은 첫 번째 자리 표시자로 대체됩니다.
## 입력
print ("{} is {} new kind of {} experience!".format("Entity1234", "totally","learning"))
## 출력
Entity1234 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 value is : 4.000000e+01 | ||
:E | 자리 표시자 내에서 사용될 때 과학적 형식으로 출력을 제공하고 출력의 지수 E는 대문자가 됩니다. | print("The scientific value is : {:E}".format(40)) |
The scientific value is : 4.000000E+01 | ||
:f |
이것은 고정 소수점 숫자 형식을 출력합니다. 기본적으로 소수점 6자리가 있는 모든 숫자의 출력을 얻습니다. | print("The value is : {:f}".format(40)) |
The value is : 40.000000 | ||
소수점 이하 2자리까지 필요한 경우 다음과 같이 사용하십시오. :.2f (2f 앞의 마침표(.)) |
print("The value is : {:.2f}".format(40)) | |
The value is : 40.00 | ||
:o | 8진수 형식을 출력합니다. | print("The value is : {:o}".format(300)) |
The value is : 454 | ||
:x | 16진수 형식을 소문자로 출력합니다. | print("The value is : {:x}".format(300)) |
The value is : 12c | ||
:X | 16진수 형식을 대문자로 출력합니다. | print("The value is : {:X}".format(300)) |
The value is : 12C | ||
:n | 이것은 숫자 형식을 출력합니다. | print("The value is : {:n}".format(300.00)) |
The value is : 300 | ||
:% |
이렇게 하면 출력이 백분율 형식으로 표시됩니다. 기본적으로 백분율 출력에 대해 소수점 이하 6자리를 제공합니다. |
print("The value is : {:%}".format(0.70)) |
The value is : 70.000000% | ||
소수점 이하 자릿수를 원하지 않는 경우 마침표를 0(:.0%)과 함께 사용할 수 있습니다. | print("The value is : {:.0%}".format(0.70)) | |
The value is : 70% | ||
:_ | 밑줄이 천 단위 구분 기호로 출력됩니다. 파이썬 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 positive value 여기에서 최종 텍스트에 10개의 공백을 추가하는 10을 사용할 수 있으며, 바꿀 값은 10개의 공백 사이에 가운데 정렬됩니다. 10의 공백은 대체된 값의 중앙 정렬을 표시하기 위해 추가됩니다. |
||
:> | 최종 결과가 오른쪽 정렬됩니다. (:>10)을 사용하여 10의 공백을 추가하고 교체된 값을 오른쪽 정렬합니다. |
print("The value {:>10} is positive value".format(40)) |
The value 40 is positive value | ||
:< | 최종 결과를 왼쪽 정렬합니다. | 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="Entity"
msg2="Tutorials"
print("Welcome to {c.msg1}1234 {c.msg2}!".format(c=MyClass()))
## 출력
Welcome to Entity1234 Tutorials!
format()과 함께 딕셔너리 사용
아래 예와 같이 format() 내부에서 딕셔너리를 사용할 수도 있습니다.
## 입력
my_dict = {'msg1': "Welcome", 'msg2': 'Entity1234'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))
## 출력
Welcome to Entity1234 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은 형식 내부의 첫 번째 값을 나타냅니다
## 입력
print("I have {0:5} dogs and {1:5} cat".format(2,1))
## 출력
I have 2 dogs and 1 cat
## 요약
- Python 문자열 클래스는 format()이라는 중요한 내장 명령을 제공하여 문자열을 최종 문자열에서 유효한 값으로 자리 표시자로 교체, 대체 또는 변환하는 데 도움이 됩니다.
- 문자열 모듈 Python 내부의 자리 표시자는 중괄호로 정의됩니다(예: "Welcome to Entity1234 {}".format('value here')).
- 자리 표시자는 비어 있는 {}이거나 {name} 등의 변수를 포함하거나 {0} , {1} 등의 숫자 색인을 포함할 수 있습니다.
- 패딩 추가, 가운데 정렬 및 숫자 서식 지정에 도움이 되는 자리 표시자 내에서 Python의 문자열 형식 지정을 사용할 수 있습니다.
'초보자를 위한 Python > 4. Python 문자열' 카테고리의 다른 글
4.6 파이썬 문자열 find() 메소드의 정리 (0) | 2022.06.24 |
---|---|
4.5 Python 문자열 길이 함수 len() (0) | 2022.06.24 |
4.3 파이썬 문자열 count() 메소드 (0) | 2022.01.27 |
4.2 파이썬 문자열 strip() 함수 : strip() 함수의 정의 (2) | 2021.12.27 |
4.1 Python 문자열 : 바꾸기, 결합, 분할, 역방향, 대문자 및 소문자 (0) | 2021.12.23 |
댓글