[Python] 9-2장 문자열 포맷(서식문자, format() 함수, f-string)

덧셈 연산자(+)

- 숫자끼리는 더한 값 출력

- 문자열끼리는 띄어쓰기 없이 연속적으로 붙여서 출력

- 문자열과 숫자를 합칠 때는 숫자를 str()로 감싸야 함

print(문자열1+문자열2)  # 문자열1문자열2
print(숫자+숫자)  # 더한값
print(문자열+숫자)  # 오류
print(문자열+str(숫자))  # 문자열숫자
print("1"+"2")  # 12
print(1+2)  # 3
print("1"+2)  # 오류
print("1"+str(2))  # 12

 

 

 

콤마(,)

- 띄어쓰기를 통해 문자열 합침

- 앞 뒤 타입이 달라도 사용 가능

print("1","2")  # 1 2
print(1,2)  # 1 2
print("1",2)  # 1 2

 

 

 

서식문자

- 출력 대상의 형태 지정

- 서식문자 넣고 뒤에 %(원하는 값) 넣으면 서식문자 자리에 원하는 값 들어감

%d : 정수
%f : 실수
%s : 문자열(정수나 실수도 가능)
print("제 나이는 %d살입니다." % 100)  # 제 나이는 100살입니다.
print("원주율은 %f입니다." % 3.14)  # 원주율은 3.140000입니다.
print("Apple은 %s라는 문자로 시작합니다." % "A")  # Apple은 A라는 문자로 시작합니다.

 

 

- 서식문자 2개 이상 사용 시 % (~, ~) 로 사용

print("저는 %s와 %s와 %s를 할 수 있습니다."%("한국어", "영어", "일본어"))
# 저는 한국어와 영어와 일본어를 할 수 있습니다.

 

 

 

format() 함수

- 문자열.format(a)

: 문자열 속의 {} 안에 a가 들어감

print("제 이름은 {}입니다.".format("홍길동"))
print("내 이름은 {}입니다.".format("홍길동"))  # 내 이름은 홍길동입니다.
print("저는 {}와 {}와 {}를 할 수 있습니다.".format("한국어", "영어", "일본어"))
# 저는 한국어와 영어와 일본어를 할 수 있습니다.

 

 

- {} 안에 숫자를 넣으면 .format(~,~)에서 그 숫자 번째 위치에 있는 값 들어감

print("저는 {2}와 {1}와 {0}를 할 수 있습니다.".format("한국어", "영어", "일본어"))
# 저는 일본어와 영어와 한국어를 할 수 있습니다.

 

 

- {} 안에 변수 이름 넣어도 사용 가능

print("제 이름은 {name}이고, {color}색을 좋아합니다.".format(name="홍길동", color="파랑"))
# 제 이름은 홍길동이고, 파랑색을 좋아합니다.

 

 

 

f-string

- 문자열 안에 변수나 표현식 삽입 가능

- 함수 호출도 가능

print(f"제 이름은 {name}입니다.")
name = "홍길동"
color = "파랑"
print(f"제 이름은 {name}이고, {color}색을 좋아합니다.")
# 제 이름은 홍길동이고, 파랑색을 좋아합니다.