일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- leetcode
- Python
- 변수
- array
- hash table
- scss
- 백준
- computed
- JavaScript
- 코딩테스트
- JavaSceipt
- math
- sorting
- dynamic programming
- 파이썬
- Algorithm
- github
- 컴포넌트
- CSS
- 알고리즘
- greedy
- 프로그래머스
- java
- JS
- vue.js
- 자료형
- 자료구조
- string
- SasS
- HTML
- Today
- Total
Posis
[Python] 포매팅 활용하기 본문
포매팅
포매팅이랑 print로 결과물을 출력할 때 다양한 방법으로 작성하는 것을 말합니다.
먼저 한번 짧게 예시를 보고 그다음에 하나씩 자세하게 설명하겠습니다.
str1 = "Python"
str2 = "포매팅"
print("오늘 배울 언어는", str1, "이고 배울 주제는", str2, "입니다.")
print("오늘 배울 언어는 %s이고 배울 주제는 %s 입니다."%(str1, str2))
print("오늘 배울 언어는 {}이고 배울 주제는 {} 입니다.".format(str1, str2))
print(f"오늘 배울 언어는 {str1}이고 배울 주제는 {str2} 입니다.")
이처럼 오늘 배울 포매팅은 3가지가 있습니다. 한번 자세하게 알아보겠습니다.
콤마(,)를 활용한 포매팅
콤마(,)를 활용한 포매팅은 다른 언어에서 플러스(+)를 활용한것과 매우 흡사합니다.
str1 = "Python"
str2 = "포매팅"
str3 = "티스토리"
str4 = "프로그래밍"
print("오늘 배울 언어는", str1, "이고 배울 주제는", str2, "입니다.")
print("현재", str3, "블로그는", str4, "을 다루는 블로그 입니다.")
이처럼 매우 간단하게 사용할 수 있지만 '프로그래밍 을'처럼 강제로 띄어쓰기가 들어가므로 상황에 맞춰서 잘 사용하셔야 합니다.
%를 활용한 포매팅
%는 내가 넣을 문자열 변수 자리를 지정해서 사용하는 방법입니다.
code | description |
%d | 정수형 |
%f | 실수형 |
%c | 문자 1개 |
%s | 문자열 |
%o | 8진수 |
%x | 16진수 |
%% | %문자 출력 |
weather = "맑음"
temperature = 10
chance_shower = 43.5
print("오늘의 날씨는 %s이고 기온은 %d도 비가 내릴 확률은 %f%% 입니다."%(weather, temperature, chance_shower))
하지만 보시는 것처럼 그냥 %f를 사용하면 43.500000000이 출력되게 됩니다. 이를 해결하기 위해서는 f앞에 .1을 붙여야 합니다.
weather = "맑음"
temperature = 10
chance_shower = 43.5
print("오늘의 날씨는 %s이고 기온은 %d도 비가 내릴 확률은 %.1f%% 입니다."%(weather, temperature, chance_shower))
단 사용할 %코드가 한 개라면 소괄호 없이 사용하시면 됩니다.
중괄호( {} )를 활용한 포매터
중괄호 사용법은 %코드와 매우 흡사합니다. %코드를 사용할 자리에 {} 또는 {넣어줄 순서}를 넣어주시면 됩니다.
name = "Posis"
year = 2021
month = 7
print("블로그이름: {}, 첫글을 작성한 날짜는 {}.0{} 입니다.".format(name, year, month))
print("블로그이름: {1}, 첫글을 작성한 날짜는 {2}.0{0} 입니다.".format(month, name, year))
print("블로그이름: {}, 첫글을 작성한 날짜는 {}.0{} 입니다.".format("Posis", 2021, 7))
보시는 거와 같이 0 -> month, 1 -> name, 2 -> year처럼 순서를 정해주시고 작성해 주셔도 무방합니다. 또한 변수에 저장된 문자열이 아닌 직접 작성한 문자열도 넣을 수 있습니다.
중괄호도 출력하기
앞에서 %를 출력하기 위해 %%썼던 것을 기억하시나요? 중괄호도 똑같이 두 번 작성하면 됩니다.
name = "Posis"
year = 2021
month = 7
print("블로그이름: {}, 첫글을 작성한 날짜는 {{{}.0{}}} 입니다.".format(name, year, month))
실수형 자릿수 표현하기
num = 3.14
print("실수형: {:f}".format(num))
print("실수형: {:.1f}".format(num))
print("실수형: {:.3f}".format(num))
원하는 만큼 공간 만들기
left = "left"
right = "right"
middle = "middle"
print("({:>10s}), ({:^10s}), ({:<10s})".format(right, middle, left))
모두 10칸으로 지정해서 출력하니 right는 왼쪽에 5칸, middle은 양쪽으로 2칸, left는 오른쪽으로 6칸이 남는 것을 볼 수 있습니다. 하지만 공백으로 보니 정확히 몇 칸씩 남았는지 믿을 수 없죠. 그래서 공백을 채워서 한번 더 출력해 보겠습니다.
left = "left"
right = "right"
middle = "middle"
print("({:->10s}), ({:-^10s}), ({:-<10s})".format(right, middle, left))
f-string을 활용한 포매팅
f-string은 중괄호를 활용한 포매팅보다 더 쉽게 사용할 수 있습니다.
print(f"2 * 3 = {2*3}")
print(f"2 * 4 = {2*4}")
print(f"2 * 5 = {2*5}")
맨 위에서 문자열로 출력하는 것을 보여드려서 이번에는 숫자형으로 계산까지 해보면서 출력해 보았습니다.
오늘은 글을 좀 길게 작성하였는데 혹시나 틀린내용이 있다면 언제든지 댓글을 달아주세요!
'Python' 카테고리의 다른 글
[Python] 인덱싱과 슬라이싱 (0) | 2022.11.21 |
---|---|
[Python] 비교연산자와 논리연산자 (0) | 2022.11.21 |
[Python] 산술연산자와 형변환(int, flaot, str, bool) (2) | 2022.11.21 |
[Python] 자료형 및 탈출문자 (0) | 2022.11.19 |
[Python] 변수 사용 및 식별자 명명 규칙 (0) | 2022.11.18 |