본문 바로가기

Python 기초

4. 문자열 포메팅

💨 문자열 포맷 코드 

 

ex 1)  문자열 바로 대입

 

" I eat %d apples." % 3 

   // I eat 3 apples.

ex 2) 숫자 값을 나타내는 변수로 대입

 

number = 3 
"I eat %d apples." % number 

// I eat 3 apples.

 

ex 3) 두 개 이상의 값 넣기 

 

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

 

3을 문자열 안에 삽입하려면 %d 를 사용하고, 3.234를 삽입하려면 %f 를 사용해야 한다. 하지만 %s 를 사용하면 이런 것을 생각하지 않아도 된다. 왜냐하면 %s 는 자동으로 % 뒤에 있는 값을 문자열로 바꾸기 때문이다.

 

✅ 포매팅 연산자 %d 와 % 를 같이 쓸 때는 %%를 쓴다!

 

"Error is %d%."  %98

 

위 예문의 결괏값으로 당연히 "Error is 98%" 가 출력될 것이라고 예상하겠지만 파이썬 값이 올바르지 않다는 값 오류 메세지를 보여준다. 이유는 문자열 포맷 코드인 %d 와 %가 같은 문자열 안에 존재하는 경우, %를 나타내려면 반드시 %% 로 써야하는 법칙이 있기 때문이다. 

 

"Error is %d%%."  %98
'Error is 98%.'

 

💨 format 함수를 사용한 포매팅 

 

ex) 1. 숫자 바로 대입하기

"I eat {0} apples." .format(3)

// I eat 3 apples.

 

ex) 2. 숫자 값을 가진 변수로 대입하기 

 

number = 3 
"I eat {0} apples." .format(number)

// I eat 3 apples

 

ex) 3. 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.

 

ex) 4. 이름으로 넣기 

 

"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.

 

💨 f 문자열 포매팅 

 

💥 파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다. 파이썬 3.6 미만 버전에서는 사용할 수 없는 기능이므로 주의해야 한다.

 

ex 1) 다음과 같이 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있다.

 

name = '홍길동'
age = 30 
f'나의 이름은 {name} 입니다. 나이는 {age} 입니다.'

// 나의 이름은 홍길동입니다. 나이는 30입니다.

 

ex 2) f 문자열 포매팅은 위와 같이 name, age 와 같은 변수 값을 생성한 후에 그 값을 참조할 수 있다. 또한 f 문자열 포매팅은 표현식을 지원하기 때문에 다음과 같은 것도 가능하다. 

 

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

// 나는 내년이면 31살이 된다

 

✅ 표현식이란 문자열 안에서 변수와 +,- 와 같은 수식을 함께 사용하는 것을 말한다.

'Python 기초' 카테고리의 다른 글

6. 딕셔너리  (0) 2022.01.24
5. 리스트 & 튜플  (0) 2022.01.24
3. 코드업 기초 100제(1~100)  (0) 2022.01.24
2. 제어문  (0) 2021.09.11
1. 변수  (0) 2021.09.11