[python] format() 함수

Soy·2023년 9월 6일
0

문자열의 format() 함수

  • 중괄호{}의 개수와 format 함수 괄호 안 매개변수의 개수는 같아야 한다.
    {}기호의 개수가 format() 함수의 매개변수 개수보다 많으면 IndexError
    {}기호의 개수가 format() 함수의 매개변수 개수보다 적으면 {}개수만큼 적용 후 나머지는 자동폐기
"{}".format(10)
"{} {}".format(10, 20)

format() 함수의 다양한 기능

정수 출력의 다양한 형태

  • 정수를 특정 칸에 출력하기
# 정수
output_a = "{:d}".format(52)

# 특정 칸에 출력하기
output_b = "{:5d}".format(52)    # 5칸
output_c = "{:10d}".format(52)   # 10칸

# 빈칸을 0으로 채우기 
output_d = "{:05d}".format(52)    # 양수
output_e = "{:05d}".format(-52)   # 음수

print(output_a)
print(output_b)
print(output_c)
print(output_d)
print(output_e)
- 실행 결과

52
   52
        52
00052
-0052
(참고 : {:05d} = 5칸을 잡고 뒤에서부터 52라는 숫자를 넣은 뒤 빈 칸은 0으로 채우기)
  • 기호를 붙여 출력하기
output_f = "{:+d}".format(52)    # 양수
output_g = "{:+d}".format(-52)   # 음수
output_h = "{: d}".format(52)    # 양수 + 기호 부분 공백
output_i = "{: d}".format(-52)   # 음수 + 기호 부분 공백

print(output_f)
print(output_g)
print(output_h)
print(output_i)
- 실행 결과
+52
-52
 52
-52
(참고 : {: d}처럼 앞에 공백을 두면 함수에 입력한 기호가 표현됨)
  • 조합하기
output_h = "{:+5d}".format(52)     # 양수 + 기호를 뒤로 밀기
output_i = "{:+5d}".format(-52)    # 음수 + 기호를 뒤로 밀기
output_j = "{:=+5d}".format(52)    # 양수 + 기호를 앞으로 밀기
output_k = "{:=+5d}".format(-52)   # 음수 + 기호를 앞으로 밀기
output_l = "{:+05d}".format(52)    # 양수 + 0으로 채우기
output_m = "{:+05d}".format(-52)   # 음수 + 0으로 채우기

print(output_h)
print(output_i)
print(output_j)
print(output_k)
print(output_l)
print(output_m)
- 실행 결과
  +52
  -52
+  52
-  52
+0052
-0052

부동 소수점 출력의 다양한 형태

  • 다양한 형태의 부동 소수점 출력하기
output_a = "{:f}".format(52.273)
output_b = "{:15f}".format(52.273)     # 15칸 만들기
output_c = "{:+15f}".format(52.273)    # 15칸에 부호 추가하기
output_d = "{:+015f}".format(52.273)   # 15칸에 부호 추가하고 0으로 채우기

print(output_a)
print(output_a)
print(output_a)
print(output_a)
- 실행 결과
52.273000     (참고 : default가 소수점 6자리까지 출력)
      52.273000
     +52.273000
+0000052.273000
  • 소수점 아래 자릿수 지정하기
output_a = "{:15.3f}".format(52.723)
output_b = "{:15.2f}".format(52.723)
output_c = "{:15.1f}".format(52.723)

print(output_a)
print(output_b)
print(output_c)
- 실행 결과
         52.723
          52.72
           52.3  (참고 : 자동으로 반올림되어 나타남)

의미 없는 소수점 제거하기

  • 파이썬은 0과 0.0을 출력했을 때 내부적으로 자료형이 달라 서로 다른 값으로 출력한다. 이때, 의미 없는 0을 제거한 후 출력하고자 한다면 {:g}를 사용하면 된다.
output_a = 52.0
output_b = "{:g}".format(output_a)

print(output_a)
print(output_b)
- 실행 결과
52.0
52

f-string vs. format() 함수

format() 함수를 사용하는 것이 더 유리한 경우

  • 문자열 내용이 너무 많을 때
    f-string을 사용하면 어떤 데이터를 삽입하여 출력하는지 확인하기 위해 문자열을 모두 읽어야 한다.
    반면, format() 함수는 데이터를 뒤에 모아서 볼 수 있기 때문에 문자열 내용이 많은 경우 사용하기에 더 적합하다.
  • 데이터를 리스트에 담아서 사용할 때
    f-string의 경우 인덱싱으로 리스트 요소에 각각 접근해야 한다.
    반면, format() 함수는 전개연산자(*)를 사용하여 리스트 요소를 한꺼번에 출력할 수 있다.

참고(파이썬 서식문자)

{:d} : 정수 출력
{:f} : 실수 출력
{:b} : 2진수 출력
{:o} : 8진수 출력
{:x} : 16진수 출력

profile
Big dreamer

0개의 댓글