알고리즘을 풀다가 소수 몇번째 자리까지 출력이라는 조건이 있어서 문자열 포맷팅 방법을 공부해야겠다는 생각이 들었다.
문자열을 형식을 지정해 원하는 형식으로 출력할 수 있는 방법을 소개한다.
사용법:
"% + 자료형 종류 % 값(출력할 값)
%
문자를 사용해서 형식을 지정한다.
자료형
%d
%f
%s
%o
%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 함수는 반복되는 형식에서 변수의 값을 넣어주기 위해 사용한다.
예를들어, 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))
python에서는 +
연산자로 문자열을 더하는 기능을 제공한다.
하지만 '오늘의 기온은' + 14 + '도입니다.' 처럼 중간에 문자열이 아닌 형태가 들어가면 적용할 수 없다.
fstring 함수를 사용하면 사이에 접두사 f를 붙이고, 중괄호({})안에 변수를 넣어 사용할 수 있다.
temp = 14
print(f'오늘의 기온은 {d}도입니다.')
# 결과: 오늘은 기온은 14도 입니다.
f-string도 자리수 표현을 할 수 있다. 위에 나온 format과 비슷하다.
number = 3.141592
print(f'{number:.2f}')
# 결과: 3.14
Reference