format

이찬·2023년 7월 4일
0

Python

목록 보기
10/17
post-thumbnail

파이썬에서 문자열 포매팅 방법은

  • %와 서식기호를 이용한 방법
  • format 함수를 이용한 방법
  • f-string을 이용한 방법

이렇게 세가지가 있다.

▶ 포메팅 이란?

  • 문자열 포매팅이란 문자열을 이쁘게 만드는 방법을 이야기합니다.
  • 문자열 중간 중간에 특정 변수의 값을 넣어주기 위해서 사용하는 것 입니다.

1. format 함수를 사용하는 방법

  • format 함수는 중괄호 {, } 안에 포매팅을 지정하고 format 함수의 인자로 값들을 넣습니다.

'{인덱스 0}, {인덱스 1}.format(값0, 값1)'

# 직접 대입하기
s1 = 'name : {0}'.format('BlockDMask')
print(s1)
 
 
# 변수로 대입 하기
age = 55
s2 = 'age : {0}'.format(age)
print(s2)
 
# 이름으로 대입하기
s3 = 'number : {num}, gender : {gen}'.format(num=1234, gen='남')
print(s3)

결과

format 함수를 사용할때 중괄호가 나오게 하려면?

# 나와라 중괄호
s7 = 'Format example. {{}}, {}'.format('test')
print(s7)
 
 
# 중괄호로 겹쳐진 인자값
s8 = 'This is value {{{0}}}'.format(1212)
print(s8)

2. % 서식문자를 사용하는 방법

  • % 서식문자의 모양은 % 기호 뒤에 자료형을 가리키는 문자가 온다.
num = 50
s = 'my age %d' % num
print(s)

%s -> 문자열
%d -> 정수
%f -> 실수

- 문자열, 정수, 실수를 % 로 포매팅 해보기

# % 기호 문자 출력
names = ['kim', 'park', 'lee']
for name in names:
    print('my name is %s' % name)
 
# % 기호 정수 출력
money = 10000
s2 = 'give me %d won' % money
print(s2)
 
# % 기호 실수 출력
d = 3.141592
print('value %f' % d)

-포매팅 해야할 변수 값이 두 개 이상일때

# 출력해야할 값이 두개 이상인 경우 () 를 이용합니다.
s1 = 'my name is %s. age : %d' % ('blockdmask', 100)
print(s1)
 
# 출력해야할 값이 점점 많아 질 수록..
age = 80
money = 20000
name = 'Kim'
weight = 80.12
etc = 'abcde'
s2 = 'my name is %s, age : %d, weight : %f, money : %d, etc : %s' % (name, age, weight, money, etc)
print(s2)

3. f-string 방법

  • 일반적인 문자열 앞에 f 또는 F 문자만 붙여주면 f-string이 됩니다.
  • f-string의 모양은 f와 {}만 알면 됩니다. 문자열 맨 앞에 f를 붙여주고, 중괄호 안에 직접 변수 이름이나 출력하고 싶은것을 바로 넣으면 됩니다.

    f'문자열 {변수} 문자열'

# 문자열 맨 앞에 f를 붙이고, 출력할 변수, 값을 중괄호 안에 넣습니다.
s = 'coffee'
n = 5
result1 = f'저는 {s}를 좋아합니다. 하루 {n}잔 마셔요.'
print(result1)

f-string
1. 문자열 맨 앞에(따옴표앞) f를 붙인다.
2. 사용하고 싶은 변수, 값을 중괄호 안에 넣는다.
3. 이쁘게 출력한다.

f-string과 왼쪽 정렬, 오른쪽 정렬, 가운데 정렬

py# f-string 왼쪽 정렬
s1 = 'left'
result1 = f'|{s1:<10}|'
print(result1)
 
# f-string 가운데 정렬
s2 = 'mid'
result2 = f'|{s2:^10}|'
print(result2)
 
# f-string 오른쪽 정렬
s3 = 'right'
result3 = f'|{s3:>10}|'
print(result3)
# f-string과 딕셔너리
d = {'name': 'BlockDMask', 'gender': 'man', 'age': 100}
result = f'my name {d["name"]}, gender {d["gender"]}, age {d["age"]}'
print(result)
profile
Kyunghee univ. IE 21

0개의 댓글