Python print 사용법 3가지(sep, end, ANSI color 출력)

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)로 출력하게 한 것입니다. 딱 봐도 위의 방식보다는 아래의 방식이 식별하기 더 쉽죠?

그림 1. python print 사용법: sep 옵션 활용하기
그림 1. python print 사용법: sep 옵션 활용하기

줄바꿈하지 않고 print 하는 방법

줄바꿈하지 않고 한 줄에 값을 5개씩 출력하고 싶을 때가 있습니다. 그럴 때 사용하는 방법은 print문에 end 옵션을 사용하는 것입니다. end 옵션을 사용하면 출력의 끝 문자를 직접 정할 수 있습니다. 정하지 않으면 기본값(default)은 줄바꿈 기호(\n)로 처리됩니다.

for i in range(0, 15):
  print("%4d" % i, end="")
  if i % 5 == 4:
    print()
Python

위와 같은 코드를 작성하면 아래와 같은 결과를 확인할 수 있습니다.

그림 2. print에서 end 활용 예시
그림 2. print에서 end 활용 예시

줄바꿈 하지 않고 사용하는 Python print 사용법을 알아봤습니다. 이번엔 글자나 배경에 색상이나 효과를 넣어서 출력하는 방법을 알아보겠습니다.

다양한 자료를 print로 출력하다보면 확인하려는 내용이 눈에 들어오지 않을 때가 있습니다. 그럴 땐 특정 라인을 컬러로 출력하면 보다 빠르게 주요사항을 확인할 수 있습니다. 이 부분은 ANSI 코드를 통해서 설정할 수 있습니다. 색상 값과 출력결과 확인해 보겠습니다.

print("\033[93m여긴 Cyan 글자색\033[46m여긴 Cyan \033[9m배경색\033[0m여긴 ANSI 적용 취소")
Python

위와 같은 코드는 아래와 같은 결과로 출력됩니다. 어떻게 아래와 같은 출력이 되는 것인지 내용을 하나씩 살펴보겠습니다.

그림 3. ANSI 코드를 사용해서 글자 꾸미기
그림 3. ANSI 코드를 사용해서 글자 꾸미기

과거에 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로 줄 수 있는 효과에 대해서는 아래 그림을 통해서 확인하시기 바랍니다.

그림 4. 글자에 사용하는 효과
그림 4. 글자에 사용하는 효과
그림 5. 글자색 8가지
그림 5. 글자색 8가지
그림 6. 배경색 8가지
그림 6. 배경색 8가지
그림 7. 밝은 글자색 8가지
그림 7. 밝은 글자색 8가지
그림 8. 밝은 배경색 8가지
그림 8. 밝은 배경색 8가지

256 색상 적용

보통은 위의 ANSI 색상 정도만 활용해도 괜찮지만, 사용하고 싶은 색상이 있다면 다음과 같이 \033[38;5;<색상값>m의 형식으로 사용할 수 있습니다. 256가지의 색상 값은 그림 9를 참고하면 됩니다.

Wikipedia에 있는 256 색상표를 가져왔습니다. Standard colors와 High-intensity colors 그리고 216개의 색상과 Grayscale 색상 24개가 준비돼 있습니다.

그림 9. 256 색상표 1
그림 9. 256 색상표 1
그림 10. 256 색상표 2
그림 10. 256 색상표 2

저는 위의 그림 9에 있는 198 핫핑크 색상을 적용해 보도록 하겠습니다.

print("\033[38;5;198m핫핑크로 출력합니다.\033[0m")
Python
그림 11. 198번 색상 핫핑크로 출력하기
그림 11. 198번 색상 핫핑크로 출력하기

관련 자료

python의 print 문서를 확인하면 print() 관련 내용을 확인할 수 있습니다.
Wikipedia의 ANSI escape code 문서를 통해서도 ANSI CODE 관련 내용을 확인할 수 있습니다.

같이 읽으면 좋은 글

Leave a Comment