현재 SQLite 데이터베이스 파일의 일부 데이터를 명령 줄로 출력하려고하는데 데이터가 제대로 표시되지 않는 것 같습니다.
현재 표시 할 데이터를 입력하면 다음과 같이 출력됩니다.
Student Table
StudentID Name Year
1 Dan 13
2 Jake 13
3 Joe 13
4 David 13
모든 이름을 올바르게 정렬하거나 적어도 중앙에 배치하고 싶지만 방법을 알 수 없습니다!
형식화 코드는 다음과 같습니다.
def view():
con = lite.connect('records.db')
with con:
cur = con.cursor()
cur.execute('SELECT * FROM Student')
col_names = [cn[0] for cn in cur.description]
rows = cur.fetchall()
print("%20s" % ("Student Table"))
print("{0:1} {1:^10} {2:20}".format(col_names[0], col_names[1], col_names[2]))
for row in rows:
print("%5s %10s %7s" % (row))
display = menu.Menu.DisplayMenu("Student")
choice = GetMenuChoice()
ValidateMenuChoice(choice)
main(choice)
어떤 도움이라도 대단히 감사하겠습니다!
혼합 및 일치 대신 코드 전체 에서 새 스타일 형식 ( str.format
대신 %
) 으로 표준화하는 것이 좋습니다 . 특히 다음 줄이 변경됩니다.
print("%5s %10s %7s" % (row))
이에:
print("{:5} {:10} {:7}".format(*row))
그런 다음 해당 형식 문자열을 조정하여 정렬 할 수 있습니다. 이:
print("{:>5} {:>10} {:>7}".format(*row))
세 열을 모두 오른쪽 정렬합니다. '>'는 '이 필드 오른쪽 정렬'을 의미합니다. 기본 정렬을 유지하려는 경우 다른 두 열에서 삭제할 수 있습니다.
열 머리글에 대해 이미 이와 같은 작업을 수행하고 있습니다. 단, 오른쪽 정렬 대신 가운데 항목을 가운데에 둡니다. 여기에서 동일한 효과를 위해 해당 문자열을 재사용 할 수 있습니다.
print("{:5} {:^10} {:7}".format(*row))
(주 숫자 것을 전에 는 :
선택 사항입니다). 코드 반복을 줄이려면 해당 문자열을 변수에 저장하고 다음을 수행 할 수 있습니다.
columns = "{:5} {:10} {:7}"
# get col_names
print("{:20}".format("Student Table")
print(columns.format(*col_names))
for row in rows:
print(columns.format(*row))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다