파이썬 기초: 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
'코딩취미 > Python' 카테고리의 다른 글
python 패키지 관리 방법 : 초보자를 위한 단계별 안내(설치,업데이트,가상환경,삭제) (0) | 2024.09.19 |
---|---|
파이썬 초보자가 알아야 할 딕셔너리 사용법 및 업데이트 요령 (0) | 2024.09.12 |
리스트 컴프리헨션 구조와 사용방법: 초보자를 위한 간단한 설명과 예제 (0) | 2024.09.10 |
QTreeView 트리구조 생성 및 사용방법(+이벤트 처리) (0) | 2024.09.10 |
exec()에서 사용자 입력(악성코드) 동작 방지방 (0) | 2024.09.09 |