문자열 포맷팅 (String Formatting)
문자열 안에 변수를 삽입하거나, 특정 형식으로 데이터를 출력할 때 사용 , 자릿수와 공백 지정 가능
% 포맷팅
'%자료형' 형식으로 문자열 안에 넣고 마지막에 '%문자/변수' 추가
- 자료형: 정수(%d), 문자(%c), 문자열(%s), 부동소수(%f), 8진수(%o), 16 진수(%x)
#문자열
"I have an %s." % 'apple'
#결과: I have an apple.
#두 개 이상의 값
"fruits: %s, %s" % ('apple', 'banana')
#결과: fruits: apple, banana
- 정렬
#문자열의 자릿수를 10으로 설정(공백 오른쪽)
"I have an %10s." % 'apple'
#결과: I have an apple.
#공백 왼쪽은 자릿수 앞에 - 붙이기
"I have an %-10s." % 'apple'
#결과: I have an apple .
format 함수포맷팅
'{인덱스/이름}' 형식으로 문자열 안에 넣고 마지막에 '.format(이름=값)' 추가
#문자열
"I have an {}.".format('apple')
#결과: I have an apple.
"I have an {0}.".format('apple') #하나일 경우 {}안에 안적어도 같은 결과
#결과: I have an apple.
#두 개 이상의 값
"fruits: %s, %s" % ('apple', 'banana')
#결과: fruits: apple, banana
"fruits: {kind1}, {kind2}".format(kind1='apple', kind2='banana')
#결과: fruits: apple, banana
- 정렬: 자릿수를 설정해 정렬을 하고 나머지 자리는 공백이나 원하는 문자로 채우기
#문자열의 자릿수를 10으로 설정(공백 오른쪽)
"I have an {0:<10}.".format('apple')
#결과: I have an apple .
#공백 왼쪽
"I have an {0:>10}.".format('apple')
#결과: I have an apple.
#가운데 정렬 -> 단어 사이에 공백이 필요할 경우 유용
"I have an {0:^10}.".format('apple')
#결과: I have an apple .
#공백을 원하는 문자로도 채울 수 있음, 정렬 문자 바로 앞에 넣기
#문자열의 자릿수를 10으로 설정하는 것이기 때문에 apple 다섯 글자를 제외한 나머지 다섯 자리를 !로 채우기
"I have an {0:!^10}.".format('apple')
#결과: I have an !!apple!!!.
f-string 포맷팅
문자열 앞에 'f' 붙이기, 변수 값을 생성한 후 그 값을 문자열 안에서 참조
fruit = 'apple'
f"I have an {fruit}."
#결과: I have an apple.
- 정렬과 공백 지정은 format 함수 방식과 동일
print(f"{'좌측 정렬':<10} | {'중앙 정렬':^10} | {'우측 정렬':>10}")
#결과: 좌측 정렬 | 중앙 정렬 | 우측 정렬
※ f-string 포맷팅이 제일 편하고 간단해서 주로 쓰임