Python에서 list의 항목을 줄바꿈해서 출력하고 싶으신가요? 혹시 색상을 넣어서 출력하고 싶을 때 있나요? 유용하게 사용할 수 있는 python print 방법 3가지 살펴보겠습니다.
목차
Python print 사용법 개요
print()의 사용법을 잘 익혀두면 개발할 때 매우 편리합니다. 왜냐면 개발하면서 중간 중간 print()를 사용해서 값을 확인하는 경우가 많이 있거든요. print() 결과의 가독성을 높이고, 용도에 따라 편리하게 print()를 이용할 수 있는 방법 3가지 지금부터 살펴보겠습니다.
List나 Tuple 항목 줄바꿈 출력
print()를 이용해서 객체를 출력하다보면 문자열 객체 뿐 아니라 list나 tuple을 출력해야 할 때가 있습니다. 그냥 출력하면 너무 보기 힘들고 이해하기 어렵습니다. 이럴 때 사용하는 옵션이 sep 옵션입니다.
print(*items, sep="\n")
Python그림 1에서 윗 부분은 그냥 print()를 이용한 것이고, 아래는 sep 옵션을 활용한 것입니다. 항목과 항목 간에 줄 바꿈 기호(\n)로 출력하게 한 것입니다. 딱 봐도 위의 방식보다는 아래의 방식이 식별하기 더 쉽죠?
줄바꿈하지 않고 print 하는 방법
줄바꿈하지 않고 한 줄에 값을 5개씩 출력하고 싶을 때가 있습니다. 그럴 때 사용하는 방법은 print문에 end 옵션을 사용하는 것입니다. end 옵션을 사용하면 출력의 끝 문자를 직접 정할 수 있습니다. 정하지 않으면 기본값(default)은 줄바꿈 기호(\n)로 처리됩니다.
for i in range(0, 15):
print("%4d" % i, end="")
if i % 5 == 4:
print()
Python위와 같은 코드를 작성하면 아래와 같은 결과를 확인할 수 있습니다.
줄바꿈 하지 않고 사용하는 Python print 사용법을 알아봤습니다. 이번엔 글자나 배경에 색상이나 효과를 넣어서 출력하는 방법을 알아보겠습니다.
print 컬러 출력 방법
다양한 자료를 print로 출력하다보면 확인하려는 내용이 눈에 들어오지 않을 때가 있습니다. 그럴 땐 특정 라인을 컬러로 출력하면 보다 빠르게 주요사항을 확인할 수 있습니다. 이 부분은 ANSI 코드를 통해서 설정할 수 있습니다. 색상 값과 출력결과 확인해 보겠습니다.
print("\033[93m여긴 Cyan 글자색\033[46m여긴 Cyan \033[9m배경색\033[0m여긴 ANSI 적용 취소")
Python위와 같은 코드는 아래와 같은 결과로 출력됩니다. 어떻게 아래와 같은 출력이 되는 것인지 내용을 하나씩 살펴보겠습니다.
과거에 MS-DOS 사용하던 때에 MDir 사용해 보셨나요? MDir이 화려한 색상으로 꾸며져 있었죠? 그때 사용된 것 또한 바로 이 ANSI Code 입니다.
Escape Code: ANSI 코드 사용을 위한 호출 코드
Python에서는 8진수 표기법인 \033, Unicode 방식인 \u001b, 16진수 표기법인 \x1B 이렇게 3가지 방식을 사용할 수 있습니다.
초기화 코드(reset)
그림 3에서 보는 것과 같이 \033[0m으로 값에 0을 사용하면 지금까지 적용된 모든 효과가 초기화되어 원래대로 돌아갑니다. 만약 취소 코드를 넣지 않으면 적용된 색상이나 효과가 지속됩니다.
ANSI Code 복합 적용
그림 3의 Cyan 배경색을 적용하는 부분과 Strike 선이 추가된 부분을 보면 앞에서 설정한 글자색 노란색과 배경색이 복합적으로 적용되는 것을 확인할 수 있습니다.
ANSI 효과 및 색상표
ANSI로 줄 수 있는 효과에 대해서는 아래 그림을 통해서 확인하시기 바랍니다.
256 색상 적용
보통은 위의 ANSI 색상 정도만 활용해도 괜찮지만, 사용하고 싶은 색상이 있다면 다음과 같이 \033[38;5;<색상값>m의 형식으로 사용할 수 있습니다. 256가지의 색상 값은 그림 9를 참고하면 됩니다.
Wikipedia에 있는 256 색상표를 가져왔습니다. Standard colors와 High-intensity colors 그리고 216개의 색상과 Grayscale 색상 24개가 준비돼 있습니다.
저는 위의 그림 9에 있는 198 핫핑크 색상을 적용해 보도록 하겠습니다.
print("\033[38;5;198m핫핑크로 출력합니다.\033[0m")
Python관련 자료
python의 print 문서를 확인하면 print() 관련 내용을 확인할 수 있습니다.
Wikipedia의 ANSI escape code 문서를 통해서도 ANSI CODE 관련 내용을 확인할 수 있습니다.