본문 바로가기

교육/[Codeit] 프로그래밍 기초 in Python

format을 이용한 문자열, format 다루기

반응형

#다음 문자열을 출력해봅시다.
# 오늘은 2020 11 04일입니다.
year = 2020
month = 11
day = 4

# print("오늘은" + year + "" + month + "" + day + "일입니다.")
# 당연히 오류. 문자열과 정수형 더할 수 없다. 형변환 필요

print("오늘은" + str(year) + "" + str(month) + "" + str(day) + "일입니다.")
# 잘 작동하는데 뭔가 번거롭다
# format을 활용해 보자
# print("오늘은 2020 11 04일입니다.")
# 형식을 갖추고
# 중괄호를 사용해서 파라미터로 입력
print("오늘은 {} {} {}일입니다.".format(year, month, day))

date_string = "오늘은 {} {} {}일입니다."
print(date_string.format(year, month, day))
print(date_string.format(year, month, day + 1))
print(date_string.format(year, month +1, day + 1))

# 중괄호 안에 입력되는 내용의 순서를 바꾸고 싶다면 중괄호 안에 숫자를 쓴다
print("오늘은 {1} {0} {2}일입니다.".format(year, month, day))
# 코드는 0, 1, 2, 3 순서대로 번호가 매겨진다. 0번부터 시작
# 0은 년도, 1은 월, 2는 일

num_1 = 1
num_2 = 3
print("{0} 나누기 {1} {2}입니다".format(num_1, num_2, num_1 / num_2))
# 문자열에 정수, 소수가 들어간다
# 소수점 둘째자리까지만 쓰고 싶다면
print("{0} 나누기 {1} {2:.2f}입니다".format(num_1, num_2, num_1 / num_2))
# :.2f 에서 f floating의 약자

 

문자열을 포멧팅하는 다양한 방법

가장 오래된 방식 (% 기호)

name = "최지웅"

age = 32

print("제 이름은 %s이고 %d살입니다." % (name, age))

제 이름은 최지웅이고 32살입니다.

이제는 잘 쓰지 않는, 옛날 방식입니다. %s, %d와 같은 '포맷 스트링'이라는 것을 사용하는데요. C나 자바 등 많은 언어들에서 이와 유사한 방식으로 문자열 포맷팅을 합니다.

현재 가장 많이 쓰는 방식 (format 메소드)

name = "최지웅"

age = 32

print("제 이름은 {}이고 {}살입니다.".format(name, age))

제 이름은 최지웅이고 32살입니다.

2020년 2월 기준, 파이썬 커뮤니티에서 가장 많이 사용하는 방식입니다. 그래서 이걸 최우선적으로 가르쳐 드렸습니다.

새로운 방식 (f-string)

name = "최지웅"

age = 32

print(f"제 이름은 {name}이고 {age}살입니다.")

제 이름은 최지웅이고 32살입니다.

파이썬 버전 3.6부터 새롭게 나온 방식입니다. 아직 완전히 대중화되지는 않았지만 좋은 평을 받고 있기 때문에, 곧 f-string을 더 많이 사용하는 추세로 갈 수 있습니다.

728x90
반응형

'교육 > [Codeit] 프로그래밍 기초 in Python' 카테고리의 다른 글

불 대수, 불린형  (0) 2020.11.05
format 실습과제  (0) 2020.11.04
형변환(Type conversion / Type casting)  (0) 2020.11.04
문자열(String)  (0) 2020.11.04
숫자형 + 심화  (0) 2020.11.03