Python - 출력 포맷ting

저희에게 도전하는 프로그래머 여러분, 환영합니다! 오늘은 Python의 흥미로운 출력 포맷ting 세계에 빠지러 가는 거예요. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 이 여정을 단계별로 안내해 드릴 거예요. 프로그래밍에 새로운 사람이라도 걱정 마세요 – 우리는 기본부터 시작해서 점점 더 어려운 걸로 나가요. 그럼, 좋아하는 음료수를 준비하고 편하게 앉아서, 함께 Python 모험에 떠나요!

Python - Output Formatting

Python에서의 출력 포맷ting

진짜 깊은 곳에 들어가기 전에, 출력 포맷ting이 왜 중요한지 이야기해 볼까요? 케이크를 굽는 것을 상상해 봅시다 – 예, 재료는 중요하지만, 어떻게 제공하는지가 모든 것을 결정합니다! 프로그래밍도 마찬가지예요. 여러분의 코드는 완벽하게 작동해도, 출력을 명확하고 가독성이 좋게 포맷팅하는 것이 프로그램을 더욱 사용자 친화적이고 전문적으로 만들 수 있습니다.

기본 프린트 함수

Python에서 출력하는 가장 기본한 방법은 print() 함수예요.

print("Hello, World!")

이렇게 출력됩니다: Hello, World!

단순하죠? 하지만 우리가 더 복잡한 것을 원한다면? 그럴 때 포맷ting이 필요해요!

문자열 모듈러 연산자 (%) 사용

문자열 모듈러 연산자 %는 Python에서 가장 오래된 포맷ting 방법 중 하나예요. 이는 고전 자동차처럼 약간 오래된 스타일이지만, 여전히 잘 동작해요.

name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))

출력: My name is Alice and I am 25 years old.

여기서 %s는 문자열의 자리 표시자이고, %d는 정수의 자리 표시자예요. 문장에서 빈 공간을 남겨두고 나중에 채우는 것과 같아요!

format() 메서드 사용

format() 메서드는 모듈러 연산자의 더 멋진, 어린 형제와 같아요. 더 유연하고 가독성이 좋아요.

name = "Bob"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

출력: My name is Bob and I am 30 years old.

번호를 붙인 자리 표시자를 사용할 수도 있어요:

print("The {0} in the {1} weighs {2} pounds.".format("cat", "hat", 5))

출력: The cat in the hat weighs 5 pounds.

F-Strings 사용

Python 3.6에서 도입된 F-Strings는 새로운 아이들이에요. 빠르고 가독성이 좋고, 제 개인적인 즐겨찾기예요!

name = "Charlie"
age = 35
print(f"My name is {name} and I am {age} years old.")

출력: My name is Charlie and I am 35 years old.

F-Strings는 계산식을 중괄호 안에 직접 넣을 수 있어요:

x = 10
y = 20
print(f"The sum of {x} and {y} is {x + y}")

출력: The sum of 10 and 20 is 30

Python의 포맷 변환 규칙

때로는 데이터 타입을 변환해야 포맷팅을 할 수 있어요. Python는 이를 지원해요!

pi = 3.14159
print(f"Pi to two decimal places: {pi:.2f}")

출력: Pi to two decimal places: 3.14

다음은 일반 포맷 지정자의 편리한 표입니다:

지정자 설명
d 정수
f 실수
s 문자열
x 16진수
o 8진수
e 과학적 기호

템플릿 문자열

템플릿 문자열은 Python의 미드 락과 같아요. 사용자 입력을 처리하거나 포맷팅을 코드와 분리하고 싶을 때 아주 좋아요.

from string import Template

t = Template("$name is $age years old")
result = t.substitute(name="David", age=40)
print(result)

출력: David is 40 years old

textwrap 모듈

textwrap 모듈은 긴 문자열을 다룰 때 가장 좋은 친구예요. 문자를 감싸고 포맷팅하여 더 가독성 있게 만들어 줍니다.

import textwrap

long_string = "This is a very long string that we want to wrap to make it more readable on the screen or in print."
wrapped = textwrap.wrap(long_string, width=30)

for line in wrapped:
print(line)

출력:

This is a very long string
that we want to wrap to make
it more readable on the
screen or in print.

shorten() 함수

때로는 문자열을 잘라내야 할 때가 있어요. shorten() 함수는 이를 완벽하게 해줍니다:

import textwrap

long_string = "This is a very long string that we want to shorten."
shortened = textwrap.shorten(long_string, width=25, placeholder="...")
print(shortened)

출력: This is a very long...

pprint 모듈

마지막으로, pprint (pretty print) 모듈에 대해 이야기해 보죠. 이는 복잡한 데이터 구조를 더 가독성 있게 인쇄하는 데 아주 좋아요.

from pprint import pprint

complex_data = {'name': 'Eve', 'age': 45, 'hobbies': ['reading', 'gaming', 'hiking'], 'family': {'spouse': 'Adam', 'children': ['Cain', 'Abel']}}

print("Regular print:")
print(complex_data)

print("\nPretty print:")
pprint(complex_data)

출력:

Regular print:
{'name': 'Eve', 'age': 45, 'hobbies': ['reading', 'gaming', 'hiking'], 'family': {'spouse': 'Adam', 'children': ['Cain', 'Abel']}}

Pretty print:
{'age': 45,
'family': {'children': ['Cain', 'Abel'], 'spouse': 'Adam'},
'hobbies': ['reading', 'gaming', 'hiking'],
'name': 'Eve'}

그리고 이렇게 끝납니다, 여러분! 우리는 Python 출력 포맷ting의 땅을 거쳐왔습니다, 기본 프린트 함수에서부터 특별한 pprint 모듈까지. 잊지 마세요, 좋은 포맷팅은 좋은 예절과 같아요 – 모든 것을 더욱 즐겁고 쉽게 이해할 수 있게 만들어요.

여러분이 Python 모험을 계속할 때, 이러한 포맷팅 기술을 계속 실험해 보세요. 곧, 여러분은 단순히 기능적인 것보다도 예술적인 출력을 만들 수 있을 거예요. 코딩을 즐기세요, 그리고 항상 완벽하게 포맷팅된 출력이 있길 바랍니다!

Credits: Image by storyset