# 문자열 포매팅(string formatting)이란?
- 문자열 안에 어떤 값을 삽입하는 방법
# 문자열 포맷 코드
# 숫자 바로 대입하기
"I eat %d apples." % 3 # 'I eat 3 apples.'
# 문자열 바로 대입하기
"I eat %s apples." % "five"
# 숫자 값을 나타내는 변수로 대입하기
number = 3
"I eat %d apples." % number # 'I eat 3 apples.'
# 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 three days.'
# %s 포맷 코드에는 어떤 형태의 값이든 변환해 넣을 수 있다.
"I have %s apples" % 3 # 'I have 3 apples'
"rate is %s" % 3.234 # 'rate is 3.234'
# 포매팅 연산자 %d와 %를 같이 쓸 때는 %%를 쓴다.
"Error is %d%%." % 98 # 'Error is 98%.'
- 문자열 포맷 코드의 종류
- %s: 문자열(String)
- %c: 문자 1개(character)
- %d: 정수(Integer)
- %f: 부동소수(floating-point)
- %o: 8진수
- %x: 16진수
- %%: Literal %(문자 % 자체)
# 포맷 코드와 숫자 함께 사용하기
# 정렬과 공백
"%10s" % "hi" # ' hi'
# %10s: 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 둔다.
"%-10sjane." % 'hi' # 'hi jane.'
# %-10s: hi를 왼쪽으로 정렬하고 나머지는 공백으로 채운다.
# 소수점 표현하기
"%0.4f" % 3.42134234 # '3.4213'
# %0.4f에서 ‘.’는 소수점 포인트, 그 뒤의 숫자 4는 소수점 뒤에 나올 숫자의 개수를 말한다.
# 소수점 포인트 앞의 숫자: 문자열의 전체 길이, %0.4f에서 사용한 숫자 0: 길이에 상관하지 않겠다는 의미
# format 함수를 사용한 포매팅
# 숫자 바로 대입하기
"I ate {0} apples".format(3) # 'I ate 3 apples'
# 문자열 바로 대입하기
"I ate {0} apples".format("five") # 'I ate five apples'
# 숫자 값을 가진 변수로 대입하기
number = 3
"I ate {0} apples".format(number) # 'I ate 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.'
# 2개 이상의 값을 넣을 경우, 문자열의 {0}, {1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
# 이름으로 넣기
"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.'
# {name} 형태를 사용할 경우, format 함수에 반드시 name=value와 같은 형태의 입력값이 있어야 한다.
# 인덱스와 이름을 혼용해서 넣기
"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
# 소수점 4자리까지만 표현
"{0:0.4f}".format(y) # '3.4213'
# 자릿수를 10으로 맞추기
"{0:10.4f}".format(y) # ' 3.4213'
# '{' 또는 '}' 문자 표현하기
"{{ and }}".format() # '{ and }'
# 중괄호 문자({})를 포매팅 문자가 아닌 문자 그대로 사용하고 싶은 경우에는 2개를 연속해서({{}}) 사용
# f 문자열 포매팅
- python 3.6 버전부터 사용할 수 있다.
name = '홍길동'
age = 30
f'나의 이름은 {name}입니다. 나이는 {age}입니다.' # '나의 이름은 홍길동입니다. 나이는 30입니다.'
# f 문자열 포매팅은 표현식을 지원한다.
# 표현식: 중괄호 안의 변수를 계산식과 함께 사용하는 것
age = 30
f'나는 내년이면 {age + 1}살이 된다.' # '나는 내년이면 31살이 된다.'
# 딕셔너리
d = {'name': '홍길동', 'age': 30}'나의 이름은 홍길동입니다. 나이는 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
# 소수점 4자리까지만 표현
f'{y:0.4f}' # '3.4213'
# 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
f'{y:10.4f}' # ' 3.4213'
# {}를 문자 그대로 표시하려면 2개를 동시에 사용해야 한다.
f'{{ and }}' # '{ and }'
728x90
'Python' 카테고리의 다른 글
[Python] 딕셔너리(Dictionary) (0) | 2024.01.12 |
---|---|
[Python] 얕은 복사(shallow copy) vs 깊은 복사(deep copy) (0) | 2024.01.12 |
[Python] t 검정(t-test) (0) | 2024.01.11 |
[Python] 클래스 (2) | 2024.01.10 |
[Python] 람다(lambda) 함수 (0) | 2024.01.10 |