파이썬 문자열 포맷팅 방법

wnajsldkf·2023년 4월 7일
0

정글

목록 보기
2/14
post-thumbnail

알고리즘을 풀다가 소수 몇번째 자리까지 출력이라는 조건이 있어서 문자열 포맷팅 방법을 공부해야겠다는 생각이 들었다.
문자열을 형식을 지정해 원하는 형식으로 출력할 수 있는 방법을 소개한다.

  • % 포맷팅
  • format 함수
  • f-string 문법

% 포맷팅

사용법: "% + 자료형 종류 % 값(출력할 값)

% 문자를 사용해서 형식을 지정한다.

자료형

  • 정수: %d
  • 실수: %f
  • 문자열: %s
  • 8진수: %o
  • 16진수: %x
  • %: %%

자료형마다 입력한 값으로 사용할 수 있는 자료형을 알아야 한다.

1) 여러 개의 변수를 사용할 때

a, b = map(int, input().split())
print("%d %d" % (a,b))

2) 자리수 지정할 때
N자리 포맷팅하는 경우

  • 정수부: 0Nd
  • 실수부: 0.Nf
# 정수부
print('%04d.%02d.%02d'%(a,b,c))
# 입력: 2023.4.7
# 출력: 2023.04.07

# 실수부
a = float(input())
print("0.2f"%)
# 입력: 3.141592
# 출력: 3.14

format 함수

format 함수는 반복되는 형식에서 변수의 값을 넣어주기 위해 사용한다.
예를들어, 9 x 9 = 81이라는 것을 반복할 때 이것은 {0}x{1} = {2}'.format(a,b,a*b) 이런식으로 형태를 가져갈 수 있다.

사용법: {인덱스0}, {인덱스1}'.format(값0, 값1)

인덱스는 0부터 시작하고, 중괄호부터 시작하여 넣을 것을 표기한다.

1) 값 입력하기

print("{0}시 : {1}분".format(19, 34))
# 결과: 19시 : 34분

2) 변수 입력하기

print('{0:04d}.{1:02d}.{2.02d}'.format(2023,4,3))
# 결과: 2020.04.03

3) 매개변수 지정하기

print('{Y:0:04d}.{M:1:02d}.{D:2.02d}'.format(Y=2023,M=4,D=3))

f-string 문법

python에서는 + 연산자로 문자열을 더하는 기능을 제공한다.
하지만 '오늘의 기온은' + 14 + '도입니다.' 처럼 중간에 문자열이 아닌 형태가 들어가면 적용할 수 없다.
fstring 함수를 사용하면 사이에 접두사 f를 붙이고, 중괄호({})안에 변수를 넣어 사용할 수 있다.

temp = 14
print(f'오늘의 기온은 {d}도입니다.')
# 결과: 오늘은 기온은 14도 입니다.

f-string도 자리수 표현을 할 수 있다. 위에 나온 format과 비슷하다.

number = 3.141592
print(f'{number:.2f}')
# 결과: 3.14

Reference

profile
https://mywnajsldkf.tistory.com -> 이사 중

0개의 댓글