PersesTitan(페르) 기술블로그

[Python] 파이썬 format 기초 1 (포맷 종류) 본문

Language/Python

[Python] 파이썬 format 기초 1 (포맷 종류)

PersesTitan(페르) 2024. 4. 28. 18:17

1. format 함수

중괄호를 활용한 방법의 포맷으로 다양한 포맷 기능을 지원합니다.

도입 버전 : Python 2.6

단순 형태

아래와 같이 {} (중괄호)를 사용한 위치에 format의 파라미터의 순서대로 들어가게 됩니다.

print("number: {}, text: {}".format(1234, 'Text'))

# 출력
number: 1234, text: Text

인덱스 형태

위와 같이 값을 넣지 않으면 순서대로 들어가지만 중괄호 안에 인덱스를 넣어주어서 파라미터의 순서를 변경할 수 있습니다.

print("number: {1}, text: {0}".format('Text', 1234))

# 출력
number: 1234, text: Text

이름 형태

아래와 같이 중괄호 안에 이름을 넣어서 이름에 매칭되는 파라이터를 넣어주는 방법도 존재합니다.

print("number: {n}, text: {t}".format(n=1234, t='Text'))

# 출력
number: 1234, text: Text

 

2. 포맷 지정자 (% 포맷)

뒤에 %를 붙여서 포맷 데이터를 넘겨주는 방법입니다. C언어의 포맷 방식과 유사하게 사용됩니다.

도입 버전 : Python 2.0

기본 형태

아래와 같이 C 포맷 형태와 유사하게  사용되며, 전달 값이 여러개 일 경우 튜플 형태로 값을 묶어서 넘겨주게 됩니다.

print("number: %d, text: %s" % (1234, 'Text'))

# 출력
number: 1234, text: Text

딕셔너리 형태

python에서는 format함수의 이름 형태 처럼 딕셔너리를 넘겨주면 매칭된 이름이 포맷되도록 구현할 수 있습니다.

print("number: %(n)d, text: %(t)s" % {'n': 1234, 't': 'Text'})

# 형태
number: 1234, text: Text

위 방법을 응용하면 아래와 같은 결과도 구현할 수 있게 됩니다.

number = 1234
text = 'Text'
print("number: %(number)d, text: %(text)s" % vars())

# 출력
number: 1234, text: Text

 

3. f키워드 포맷

문자열앞에 f 키워드를 붙여서 포맷하는 방식으로 js에 백틱 포맷 처럼 문자열 안에 값을 쓴다는 특징이 있습니다.

사용법

아래와 같이 문자열 앞에 f를 붙여주고 중괄호에 포맷 값을 넣어주는 방식으로 포맷을 합니다.

number = 1234
text = 'Text'
print(f"number: {number}, text: {text}")

# 출력
number: 1234, text: Text

 

응용

중괄호 안에는 들어갈 값이기 때문에 아래와 같이 사용하는것도 가능해집니다.

number = 1234
text = 'Text'
print(f"number: {number + 6}, text: {text}")

# 출력
number: 1240, text: Text