문자열 포메팅이란 문자열 안에 어떤 값이나 변수를 삽입하는 방법을 말합니다.
파이썬은 여러가지 문자열 출력방법이 있지만 format보다 f-string이 2배 가까이 빠르다고 합니다.
그리고 상당히 직관적이어서 쉽게 이해할 수 있는것도 장점입니다.
F-문자열(f-string)
일반적인 문자열 출력방법
print('Hello Python')
결과)
Hello Python
일반적으로 문자열은 문자 끝과 끝에 '(작은따옴표) 또는 "(큰따옴표)를 넣어서 사용합니다.
이러한 패턴에 앞에 알파벳 f를 붙여주면 f-string이 됩니다.
1. f-string을 이용한 일반적인 출력
print(f'Hello Python')
결과)
Hello Python
2. f-string은 중괄호를 사용해서 {} 문자열안에 변수를 집어넣을 수 있습니다.
a = 10
b = 20
print(f'{a} + {b} = {a+b}')
결과)
10 + 20 = 30
중괄호 {} 안에 변수를 집어넣고 변수의 연산도 가능합니다.
3. 중괄호 안에 문자열 변수를 넣고 출력하는것 또한 가능합니다.
year = 2022
area = '대한민국'
print(f'나는 {year}에 {area}에 살았습니다.')
결과)
나는 2022에 대한민국에 살았습니다.
중괄호 {} 안에 year와 area를 넣어 문자를 출력했습니다.
4. f-string을 사용하면 함수를 넣는것 또한 가능합니다.
name = 'korea'
print(f'우리나라의 이름은 {name}이고 총 {len(name)}글자 입니다.')
결과)
우리나라의 이름은 korea이고 총 5글자 입니다.
중괄호 안에 len()함수를 넣어서 출력했습니다.
5. 반복문을 이용하여 f-string을 활용할 수 있습니다.
arr = [ 10, 20, 30, 40, 50 ]
for i in range(len(arr)):
print(f'{i+1}번째 요소 {arr[i]},', end=' ')
결과)
1번째 요소 10, 2번째 요소 20, 3번째 요소 30, 4번째 요소 40, 5번째 요소 50,
리스트의 인덱스를 이용해서 값을 문자열 안에서 출력했습니다.
6. f-string을 이용한 소수점 출력
소수점을 출력할때는 {출력할변수:타입 지시자} 를 사용합니다.
num = 1.23456789
print(f'소수점 두자리 : {num:.2f}')
결과)
소수점 두자리 : 1.23
f는 float의 약자이며 실수를 의미합니다.
출력할 변수 num: 에 .2f로 소수점 2자리까지 표현하겠다고 선언했습니다.
6-1. 정수의 실수 출력
ten = 10
print(f'정수의 실수 출력 : {ten:.2f}')
결과)
정수의 실수 출력 : 10.00
정수인 10을 소수점 2자리까지 출력하여 10.00으로 출력했습니다. 정수인 경우 나머지 소수점은 모두 0이 되어 출력됩니다.
6-2. 부동 소수점 타입 지시자 g
ten = 10.00
pi = 3.14
print(f'실수의 정수 출력 : {ten:g}')
print(f'파이 : {pi:.2f}')
결과)
실수의 정수 출력 : 10
파이 : 3.14
소수점 뒷자리 0인 ten은 부동 소수점 지시자 g를 사용해서 정수 10으로 출력해줍니다.
소수점 뒷자리가 모두 0인 실수는 정수로 그렇지 않은 실수는 실수로 출력하고 싶을때 사용할 수 있습니다.
6-3. 반올림
pi = 3.141592653589
print(f'파이 : {pi:.4f}')
결과)
파이 : 3.1416
소수 4번째 자리까지 출력하면 뒷자리가 9이므로 자동으로 반올림되어 5가 6이 되어 출력됩니다.
7. 중괄호 출력
print(f'중괄호 출력 {{}}')
결과)
중괄호 출력 {}
f-string에서 중괄호를 출력하고 싶으면 중복해서 사용해주면 됩니다.
'[Python]' 카테고리의 다른 글
[Python] 파이썬 heap 자료구조, heapq 모듈 사용 (0) | 2022.07.25 |
---|---|
[Python] 순열과 조합 데카르트 곱 permutations and combinations, cartesian product (0) | 2022.07.24 |
[Python] 문자열 루프, enumerate함수 (0) | 2022.07.19 |
[Python] .reverse()함수와 reversed()함수의 차이 (0) | 2022.07.18 |
[Python] math모듈과 ceil함수, floor함수 (0) | 2022.07.17 |