본문 바로가기
코딩취미/Python

파이썬 기초: print()로 간단하게 테이블 만들기(+format()함수)

by 브링블링 2024. 9. 13.
반응형

파이썬 기초: print()로 간단하게 테이블 만들기(+format()함수)

파이썬에서 데이터를 테이블 형태로 출력하는 것은 데이터를 더 명확하고 이해하기 쉽게 표시하는 방법 중 하나입니다. 많은 데이터 처리 라이브러리들이 테이블 형태로 데이터를 출력하는 기능을 제공하지만, 라이브러리를 사용하지 않고도 기본 함수인 print()를 통해 간단하게 테이블을 만들 수 있습니다.

 

이번 포스팅에서는 print()를 사용하여 간단한 텍스트 테이블을 만드는 방법과, 이를 효율적으로 관리하는 데 유용한 format() 함수에 대해 자세히 설명하겠습니다.

1. 기본 print() 함수로 테이블 출력하기

print() 함수는 문자열을 출력하는 기본 함수로, 이를 이용해 텍스트 테이블을 만들 수 있습니다. 예를 들어, 데이터를 일정한 칸에 맞춰 출력함으로써 테이블 형태를 구성할 수 있습니다. 데이터를 수동으로 정렬하는 방식부터 시작해 보겠습니다.

 

예시: 학생 성적 테이블 만들기

print("이름     | 수학 | 과학 | 영어")
print("-----------------------------")
print("Alice   |  85  |  92  |  88")
print("Bob     |  78  |  85  |  82")
print("Charlie |  95  |  89  |  91")

 

실행 결과:

이름     | 수학 | 과학 | 영어
-----------------------------
Alice   |  85  |  92  |  88
Bob     |  78  |  85  |  82
Charlie |  95  |  89  |  91

 

이 방식은 간단하지만, 각 칸의 너비를 수동으로 맞춰야 하며 데이터가 많아지면 관리하기 어렵습니다. 이를 조금 더 효율적으로 할 수 있는 방법이 있습니다.

2. format() 함수로 칸 정렬하기

파이썬의 format() 함수는 문자열 내에서 변수를 삽입하고, 데이터를 정렬하거나 형식화하여 출력하는 강력한 기능을 제공합니다. 특히 데이터를 일정한 칸에 맞춰 출력할 때 매우 유용합니다. 각 데이터 항목의 출력 너비를 설정하여 가독성을 높일 수 있습니다.

 

format() 함수 기본 문법

 

  • {}: 문자열 내에서 값을 삽입할 위치를 나타냅니다.
  • :: 형식 지정을 위한 구분자입니다.
  • <, >: 왼쪽 또는 오른쪽 정렬을 지정합니다.
  • 숫자: 출력할 값의 폭(너비)을 지정합니다.

format()의 주요 기능:

  • 왼쪽/오른쪽 정렬: {:<}는 왼쪽 정렬, {:>}는 오른쪽 정렬을 의미합니다.
  • 폭 지정: {:<10}처럼 숫자를 지정해 출력 폭을 조절할 수 있습니다.
  • 형식화 출력: format()을 통해 출력할 값의 형식을 세밀하게 지정할 수 있어, 텍스트와 숫자를 조합한 테이블을 쉽게 만들 수 있습니다.

 

"문자열 {필드명}".format(값)

 

예시: 간단한 format() 사용법

name = "Alice"
score = 85
print("{:<10} | {:>5}".format(name, score))  # 이름 왼쪽 정렬, 점수 오른쪽 정렬

 

실행 결과:

 

  • {:<10}: 문자열을 10칸의 폭을 사용하여 왼쪽으로 정렬합니다.
  • {:>5}: 숫자를 5칸의 폭을 사용하여 오른쪽으로 정렬합니다.

 

Alice      |    85

테이블 출력에 적용하기

format() 함수를 사용하면, 데이터를 깔끔하게 정렬하여 출력할 수 있습니다. 이를 활용해 학생 성적 테이블을 다시 만들어 보겠습니다.

 

예시: format()으로 테이블 만들기

# 칸 너비를 맞춰서 출력
print("{:<8} | {:<5} | {:<5} | {:<5}".format("이름", "수학", "과학", "영어"))
print("------------------------------")
print("{:<8} | {:<5} | {:<5} | {:<5}".format("Alice", 85, 92, 88))
print("{:<8} | {:<5} | {:<5} | {:<5}".format("Bob", 78, 85, 82))
print("{:<8} | {:<5} | {:<5} | {:<5}".format("Charlie", 95, 89, 91))

 

실행 결과:

 

  • {:<8}: 8칸을 차지하며, 왼쪽으로 정렬하겠다는 의미입니다. 이를 통해 모든 데이터가 일정한 칸에 맞춰 출력됩니다.
  • {:>5}: 숫자형 데이터를 오른쪽 정렬하는 방식도 사용 가능하며, 이 경우 숫자들이 같은 자리에서 정렬됩니다.

 

이름     | 수학  | 과학  | 영어  
------------------------------
Alice    | 85    | 92    | 88   
Bob      | 78    | 85    | 82   
Charlie  | 95    | 89    | 91
반응형

3. 반복문을 사용해 데이터 출력하기

데이터의 양이 많아지면 일일이 print() 문을 작성하는 것은 비효율적입니다. 반복문과 format()을 조합하면 더 깔끔하고 유지 관리하기 쉬운 코드를 작성할 수 있습니다.

 

예시:

# 학생 데이터를 리스트로 저장
students = [
    ["Alice", 85, 92, 88],
    ["Bob", 78, 85, 82],
    ["Charlie", 95, 89, 91]
]

# 테이블 헤더 출력
print("{:<8} | {:<5} | {:<5} | {:<5}".format("이름", "수학", "과학", "영어"))
print("------------------------------")

# 데이터 출력
for student in students:
    print("{:<8} | {:<5} | {:<5} | {:<5}".format(student[0], student[1], student[2], student[3]))

 

실행 결과:

 

  • students 리스트: 학생들의 이름과 점수를 담은 2차원 리스트입니다.
  • 반복문: 리스트에 있는 데이터를 하나씩 가져와 print()로 출력합니다. 이 방법은 데이터가 많아질수록 효율적입니다.

 

이름     | 수학  | 과학  | 영어  
------------------------------
Alice    | 85    | 92    | 88   
Bob      | 78    | 85    | 82   
Charlie  | 95    | 89    | 91

4. 데이터 가공을 위한 정렬과 조정

파이썬의 기본 기능으로 테이블을 만들 때, 특정 컬럼에 맞춰 데이터를 정렬하거나 표를 수정하는 작업도 가능합니다. 예를 들어, 숫자형 데이터를 오른쪽 정렬해서 더 깔끔하게 출력할 수 있습니다.

 

예시: 숫자 오른쪽 정렬하기

# 숫자는 오른쪽 정렬, 텍스트는 왼쪽 정렬
print("{:<8} | {:>5} | {:>5} | {:>5}".format("이름", "수학", "과학", "영어"))
print("------------------------------")

for student in students:
    print("{:<8} | {:>5} | {:>5} | {:>5}".format(student[0], student[1], student[2], student[3]))

 

실행 결과:

여기서 **{:>5}**는 숫자를 오른쪽으로 정렬하여 출력하는 것을 의미합니다. 이렇게 하면 숫자형 데이터가 더 깔끔하게 정렬되어 보입니다.

이름     |  수학  |  과학  |  영어
------------------------------
Alice    |    85  |    92  |    88
Bob      |    78  |    85  |    82
Charlie  |    95  |    89  |    91
반응형