just inside

[python] 문자열 포매팅 본문

LG U+ Why Not SW camp/python

[python] 문자열 포매팅

방울도마도 2024. 7. 9. 11:32
728x90

문자열 포매팅이란?

  • 변수의 값을 형식을 지정하여 출력
  • % 기호를 사용한 형식 지정자를 이용해서 표현
  • 포맷 코드
코드 설명
%s 문자열 (string)
%c 문자 1개(character)
%d 정수 (interger)
%f 부동 소수 (floating-point)
%o 8진수
%x 16진수
%% literal % (문자 % 자체)

 

%s 는 어떤 Type의 값이든 문자형으로 변환하여 넣을 수 있다.

변수의 값을 형식을 지정하여 출력
print("%d" %n) 변수 n의 값을 10진수 형식으로 출력, d는 dicmal(십진의)을 의미
print("%f" %f) 변수 f의 값을 실수 형식으로 출력
print("%.2f" %f) 변수 f의 값을 소수점 이하 셋째 자리에서 반올림하여 둘째 자리까지 출력

 

# example

# 1. 숫자 바로 대입 : %d
>>> "I eat %d apples." % 3
'I eat 3 apples.'

# 2. 문자열 바로 대입 : %s
>>> "I eat %s apples." % "five"
'I eat five apples.'

# 3. 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'

# 4. 2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for 10 days.'

# 5. %%
>>> "Errors is %d%%." % 98
'Error is 98%.'

포맷 코드와 숫자 함께 사용하기

1. 정렬과 공백

  • 오른쪽 정렬 : %[전체길이]s
  • 왼쪽 정렬 : %-[전체길이]s
# 오른쪽 정렬
>>> "%10s" % "hi"
'        hi'

# 왼쪽 정렬
>>> "%-10sjane" % "hi"
'hi    jane'

 

2. 소수점 표현하기

  • %0.4f 에서 '.'는 소수점 포인트, 그 뒤의 숫자 4는 소수점 뒤에 나올 숫자의 개수
  • %0.4f 는 0을 생략하여 %.4f 처럼 사용 가능
  • %10.4f" % 3.42134234 : 전체 10자리 중 소수 이하 4자리 까지만 출력
# 소수점 뒤 4자리
>>> "0.4f" % 3.42134234
'3.4213'

# 소수점 뒤 4자리까지 표시, 전체 길이 10인 문자열 오른쪽 정렬
>>> "%10.4f" % 3.42134234
'    3.4213'

format 함수를 사용한 포매팅

  • 문자열의 format 함수를 사용하면 좀 더 발전된 스타일로 문자열 포맷 지정 가능
  • {0}, {1} ... 기호의 자리에 format() 함수에서 전달하는 값을 포함
# 숫자 바로 대입하기
>>> "I eat {0} apples".format(3)
'I eat 3 apples'

# 문자 바로 대입하기
>>> "I eat {0} apples".format("five")
'I eat five apples'

# 숫자 값을 가진 변수로 대입하기
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'

# 2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

# 이름으로 넣기
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

# 인덱스와 이름을 혼용해서 넣기
>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

# 왼쪽 정렬
>>> "{0:<10}".format("hi")
'hi        '

# 오른쪽 정렬
>>> "{0:>10}".format("hi")
'        hi'

# 가운데 정렬
>>> "{0:^10}".format("hi")
'    hi    '

# 공백 채우기
>>> "{0:=^10}".format("hi")
'====hi===='
>>> "{0:!<10}".format("hi")
'hi!!!!!!!!'

# 소수점 표현하기
>>> y = 3.42134234
>>> "{0.:0.4f}".format(y)
'3.4213'
>>> "{0.10.4f}".format(y)
'    3.4213'

# { 또는 } 문자 표현하기
>>> "{{ and }}".format()
'{ and }'

f 문자열 포매팅

  • 파이썬 3.6 이상에서 지원
  • 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있음
# f 문자열 포매팅
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

>>> age = 30
>>> f'나는 내년이면 {age + 1}살이 된다.'
'나는 내년이면 31살이 된다.'

# 딕셔너리 사용
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

# 정렬
>>> f'{"hi":<10}'  # 왼쪽 정렬
'hi        '
>>> f'{"hi":>10}'  # 오른쪽 정렬
'        hi'
>>> f'{"hi":^10}'  # 가운데 정렬
'    hi    '

# 공백 채우기
>>> f'{"hi":=^10}'  # 가운데 정렬하고 '=' 문자로 공백 채우기
'====hi===='
>>> f'{"hi":!<10}'  # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!!!!!'

# 소수점 표현
>>> y = 3.42134234
>>> f'{y:0.4f}'  # 소수점 4자리까지만 표현
'3.4213'
>>> f'{y:10.4f}'  # 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
'    3.4213'

# {} 문자로 사용
>>> f'{{ and }}'
'{ and }'

 


출처 : https://wikidocs.net/13

728x90

'LG U+ Why Not SW camp > python' 카테고리의 다른 글

[python] set (집합) 자료형  (0) 2024.08.01
[python] 문자열 함수 정리  (0) 2024.07.17
[python] 파일 읽고 쓰기  (0) 2024.07.12
[python] 딕셔너리 자료형  (0) 2024.07.10