10.1 format()
콘솔(화면)에 많은 데이터를 출력해야 할 때가 자주 있지. 이 문제는 우리가 처음 마주하는 게 아니라서, 이미 Python에는 함수 format()이 있어. 이걸 이용하면 문자열을 합치고 데이터를 화면에 더 간단하고 직관적으로 출력할 수 있어.
format() 함수는 문자열의 특정 위치에 값을 삽입하는 데 사용돼. 함수의 문법은 다음과 같아:
"문자열 템플릿 {}에서 {}까지".format(값1, 값2,…)
사실 1. 함수 format()는 문자열의 하위 함수라서 문자열에서 호출돼. 문자열을 함수에 전달하는 대신, 문자열 뒤에 점(.)을 찍고 format() 함수를 호출한 뒤, 인자를 전달하는 방식이야.
사실 2. 함수 format()는 템플릿 문자열을 전달된 값으로 채워. 숫자가 포함되어 있다면 문자열로 변환하고, {}로 표시된 위치에 이 값을 삽입하는 원리야. 이렇게 값을 삽입할 위치를 placeholder라고 불러.
기본 사용법:
welcome_message = "안녕, {}, 환영해 {}에 와줘서!"
print(welcome_message.format("아나", "우리 가게"))
결과: "안녕, 아나, 환영해 우리 가게에 와줘서!"
숫자 포맷팅:
output = "데이터: {0:.2f} 및 {1:.2f}".format(3.1415926, 2.71828)
print(output)
결과: "데이터: 3.14 및 2.72" — 소수점 이하 두 자리로 제한된 출력의 예시.
키워드 사용:
output = "{name} 님이 {company}에서 일합니다"
print(output.format(name="세르게이", company="Google"))
결과: "세르게이 님이 Google에서 일합니다"
format()를 사용하면 코드의 가독성과 유지보수성이 좋아져. 문자열 전체를 수정할 필요 없이 포맷을 쉽게 변경할 수 있거든.
10.2 f-문자열
Python 3.6 버전부터 새로운 문자열 타입 — f-문자열이 등장했어. 이는 "formatted string"의 약자인데, 코드 가독성을 개선시켜 줄 뿐만 아니라, 다른 포맷팅 방식보다 더 빠르게 동작해.
f-문자열을 사용하려면 문자열 앞에 "f" 또는 "F"를 붙이고, 중괄호 {} 안에 삽입할 표현식을 넣어:
예시:
force = "다크 사이드"
message = f"포스가 함께하길, {force}!"
print(message) # 출력: 포스가 함께하길, 다크 사이드!
중요! 중괄호 안에는 현재 scope에서 접근 가능한 변수들을 사용할 수 있어 (이 부분은 나중에 다룰게). Python이 자동으로 이를 문자열로 변환해 적절한 위치에 삽입해줘.
예시:
age = 28
message = f"내 나이는 {age}살"
print(message) # 출력: 내 나이는 28살
게다가 중괄호 안에 여러 변수로 구성된 표현식도 사용할 수 있어.
예시:
birth_year = 1985
current_year = 2024
message = f"내 나이는 {current_year - birth_year}살"
print(message) # 출력: 내 나이는 39살
내부적으로는 이것이 여전히 format() 호출로 변환되지만, 새로운 방식이 훨씬 더 편해.
편하게 써봐~
10.3 sep와 end 매개변수
Python의 함수 print()는 sep와 end라는 두 가지 유용한 매개변수를 제공해. 이 매개변수는 데이터 출력 방식을 제어할 수 있게 해줘. 이를 통해 추가 함수나 복잡한 문자열 작업 없이도 출력 포맷을 조정할 수 있어.
매개변수 sep는 print()에 전달된 여러 값들 사이에 사용할 구분 기호를 지정해. 기본값은 공백이야. 즉, 여러 인자를 print()에 넘기면 공백으로 구분된다는 뜻이지.
그런데 공백 대신 콤마로 데이터를 구분하고 싶다면 맨 끝에 매개변수 sep를 추가한 뒤 원하는 문자열 구분자를 지정하면 돼.
예시:
print("Hello", "world") # 출력: Hello world
print("Hello", "world", sep=", ") # 출력: Hello, world
아니면 각 값을 새 줄에 출력하고 싶다면 "\n"(줄 바꿈 문자)를 sep에 할당하면 괜찮아.
| 예시 | 설명 |
|---|---|
|
|
매개변수 end는 모든 인자 출력 후에 무엇을 출력할지 정의해. 기본값은 줄 바꿈 문자 (\n)인데, 이는 print()가 실행된 뒤 줄이 바뀜을 의미해.
end를 변경하면 데이터를 출력하는 방식을 제어할 수 있어. 예를 들어, 같은 줄에서 출력을 계속하려면:
예시:
print("Hello", end=" ")
print("world") # 출력: Hello world
sep와 end를 활용하면 표 만들기, 보고서 작성, 데이터를 한 줄에 출력하기 등에서 특별한 포맷이 필요한 경우 유용해.
수동으로 구분자를 추가하거나 줄 바꿈을 관리할 필요 없이 코드가 더 간단해지고 읽기 쉽고 유지보수도 쉬워져.
GO TO FULL VERSION