베이직 파이썬 - 파이썬 문자열 포맷팅(String formatting) / how to format string in Python

문자열 포맷팅이란?

문자열 안의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이다.

포매팅 방법
  1. 포맷코드 사용하기(%d, %s 등등)
  2. format 함수를 사용하기
  3. f를 활용하여 포맷하기

취향 차이지만 개인적으로 3번 방법을 추천드립니다. 코드 길이가 짧아 가독성이 제일 좋기 때문입니다.
하지만 포맷코드 즉 1번 방법으로는 정렬 및 소수점 표현도 가능하기 때문에 활용도는 1번이 더 다양합니다.

아래 예시를 통해 확인하세요


#문자열 포매팅 예시

num = 3
fruit = "apples"

# 1번 방법 %d, %s로 포맷하기
eatApples = "I eat %d %s" %(num ,fruit)
print("1번 방법 %d, %s로 포맷하기" + eatApples)

# 2번 방법 format 함수를 이용하기
eatApples2 = "I eat {} {}".format(num,fruit)
print("2번 방법 format 함수를 이용하기" + eatApples2)

# 2번 방법 응용 인덱싱 활용하기
eatApples3 = "I eat {1} {0}".format(num,fruit)
print("2번 방법 응용 인덱싱 활용하기" + eatApples3)


# 3번 방법 f를 활용하기
eatApples4 = f"I eat {num} {fruit}"
print("3번 방법 f를 활용하기" + eatApples4)

아래 코드는 정렬에 대한 예시입니다.

s 왼쪽은 정렬을 나타냅니다. -값은 왼쪽 정렬, +값은 오른쪽 정렬입니다.


# 포맷코드로 문자열 정렬 및 소수점 출력하기
# 문자열 행렬 만들기


inputRowNum = int(input("원하는 행의 갯수를 입력하세요: "))
inputColNum = int(input("원하는 열의 갯수를 입력하세요: "))
sentence = input("원하는 문자열을 입력하세요: ")

print() 

#for문으로 문자열 행렬 만들기
print("for문으로 문자열 행렬 만들기\n")
for i in range(inputRowNum):
    print("%-15s" %(sentence) *inputColNum)

print()
    
#while 문으로 문자열 행렬 만들기
print("while문으로 문자열 행렬 만들기\n")
cnt = 0
while(cnt<inputRowNum):
    print("%-20s" %(sentence) *inputColNum)
    cnt+=1

print()

0.4f의 의미는 소수점 네 번째 자리까지만 나타내시오 라는 의미입니다.


#소수점 연습

import random

a = random.random() # 0부터 1 사이의 임의의 float
print(a)

print("%0.4f" %a) # 소수점 4번째 짜리 까지 출력

댓글