문자열 포매팅 방법 정리 (정렬과 필드설정)

문자열 포매팅 : 데이터 값을 문자열에 끼워넣는 방법

 

1. %서식 기호

string % data

문자열 안의 %수는 % 뒤의 데이터 항목의 수와 일치해야 함 -> %가 나타난 순서대로 데이터 제공

단일 데이터 항복은 %바로 뒤

여러 데이터 항목은 튜플로 묶어서 나타냄

actor = 'Emma Stone'
dog = 'shepherd'
weight = 32
print("My favorite actor is %s"% actor)
print('My dog %s is weighs %dkg' % (dog,weight))
My favorite actor is Emma Stone
My dog shepherd is weighs 32kg

 

정렬과 필드설정

문자열 내의 % 다음에 타입 지정자 입력

%10s : 최소 10자의 필드를 설정하는 스트링 변수 & 오른쪽 정렬

%-10s : 최소 10자의 필드를 설정하는 스트링 변수 & 왼쪽 정렬

%10.4s : 최소 10자의 필드의 스트링 변수, 최대문자 길이 4, 오른쪽 정렬 

print('%10s %10s %10d' % (actor,dog,weight))
print('%-10s %-10s %-10d' % (actor,dog,weight))
print('%10.4s %10.4s %10.4d' % (actor,dog,weight))
Emma Stone   shepherd         32
Emma Stone shepherd   32        
      Emma       shep       0032

 

2. format 함수

print('{} {} {}'.format(a,b,c))

name = 'jay'
age = 30
sex = 'male'
print('이름: {} 나이: {} 성별: {}'.format(name,age,sex))
print('이름: {2} 나이: {0} 성별: {1}'.format(name,age,sex)) # 순서지정
print('이름: {name} 나이: {age} 성별: {sex}'.format(name='emma',age=26,sex='female')) # 인자에 직접 지정
이름: jay 나이: 30 성별: male
이름: male 나이: jay 성별: 30
이름: emma 나이: 26 성별: female

d = {'name':'jay', 'age':30, 'sex':'female'}
print('이름: {0[name]} 나이: {0[age]} 성별: {0[sex]} 취미: {1}'.format(d,'carom')) # 딕셔너리와 순서를 활용
이름: jay 나이: 30 성별: female 취미: carom

정렬과 필드설정

format 함수에서는 : 다음에 타입 지정자를 입력

{:10s} : 최소 10자의 필드를 설정하는 스트링 변수 & 오른쪽 정렬

{:<10s} : 최소 10자의 필드를 설정하는 스트링 변수 & 왼쪽 정렬

{:^10s} : 최소 10자의 필드를 설정하는 스트링 변수 & 가운데 정렬

name = 'jay'
age = 30
sex = 'male'
print('이름: {:10s} 나이: {:10d} 성별: {:10s}'.format(name,age,sex)) # 최소 필드 길이 10, 오른쪽 정렬
print('이름: {:<10s} 나이: {:<10d} 성별: {:<10s}'.format(name,age,sex)) # 최소 필드 길이 10, 왼쪽 정렬
print('이름: {:^10s} 나이: {:^10d} 성별: {:^10s}'.format(name,age,sex)) # 최소 필드 길이 10, 가운데 정렬
이름: jay        나이:         30 성별: male      
이름: jay        나이: 30         성별: male      
이름:    jay     나이:     30     성별:    male

 

3. f-string

print(f'문자열{a})

위와 동일한 원리로 딕셔너리나 리스트에도 적용 가능

name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13
print(f'이름: {name1} 나이: {age2}')
print(f"이름: {name2} 나이: {age2}")
이름: 김민수 나이: 13
이름: 이철희 나이: 13
d = {"name1":"김민수", "age1":10}
a =f'my name {d["name1"]},age {d["age1"]}'
print(a)
my name 김민수,age 10

 

참고 : https://blockdmask.tistory.com/424

 

[python] 파이썬 format 함수 (문자열 포매팅 방법 1)

안녕하세요. BlockDMask 입니다. 파이썬에서 문자열 포매팅 방법은 %와 서식기호를 이용한 방법, format 함수를 이용한 방법, f-string을 이용한 방법 이렇게 세가지가 있다고 볼 수 있습니다. 오늘은

blockdmask.tistory.com