【问题标题】:How To Make A Table On Python 3.5.2? [closed]如何在 Python 3.5.2 上制作表格? [关闭]
【发布时间】:2016-12-02 22:06:44
【问题描述】:

我编写了这样的代码,但我遇到了问题......

    def arrayfunction(n):
        array = [None] *n
        return array

    def main():
        title = input("Enter A Lesson Title : ")
        students = int(input("How Many Students : "))
        name = arrayfunction(students)
        home = arrayfunction(students)
        mid = arrayfunction(students)
        final =  arrayfunction(students)
        total =  arrayfunction(students)
        grade = arrayfunction(students)

        for i in range(0,students,1):
            print("Students Number - ",i+1,sep="")
            print("Students Name : ")
            name[i] = input()
            print("Homework Points : ")
            home[i] = int(input())
            print("Mid Points : ")
            mid[i] = int(input())
            print("Final Points : ")
            final[i] = int(input())
            total[i] = (home[i]*0.3) + (mid[i]*0.3) + (final[i]*0.4)

            if (total[i] >= 80):
                grade[i] = "A"
            elif (total[i]>=70):
                grade[i] = "B"
            elif (total[i]>=59):
                grade[i] = "C"
            elif (total[i]>=50):
                grade[i] = "D"
            elif (total[i]<50):
                grade[i] = "E"

而不是像这样打印输出,我想把它放在桌子上,但我不知道怎么做,任何人都可以帮助我吗??

    print ("|----------------------------------------------------------------|")
    print ("|                       POINT LIST             |")
    print ("|                  LESSON TITLE : ",title,"   |",sep="")
    print ("|---------------------------------------------------------------|")
    print ("|No.|  Name           |             Points           |  Grade   |",sep="")
    print ("|   | Students        |-------------------------------------|          |",sep="")
    print ("|   |                  | Homework | Mid | Final | Totals |          |",sep="")
    for l in range(0,students,1):    
        print ("|",l+1,"  |",name[l],"                                         |",sep="")
        print ("|   |                 |",home[l],"  |  ",mid[l],"  |  ",final[l],"  |  ",total[l],"  |  ",grade[l],"  |  ",sep="")
    print ("|-----------------------------------------------------------------------------------------------|")


    return None


if __name__ == '__main__':
    main()

输出图片:https://i.stack.imgur.com/x0VCa.png

【问题讨论】:

  • 通过字符串建表难度很大,不如试试TkInter这样的python GUI
  • 使用str.format。它可以为您处理间距。
  • 有很多可用的库可以漂亮地打印表格数据。
  • @polku 我同意,很多人使用矩阵,所以这将是最简单的选择。

标签: python python-3.x


【解决方案1】:

我建议您熟悉str.format 函数。它为这种事情创造了奇迹。

print('{:^60}'.format('Point List'))
print('{:>30}{:<30}'.format('Lesson Title', title))
template = '{:<3}{:^12}{:^9}{:^9}{:^9}{:^9}{:^9}'
print(template.format('No.', 'Name', 'HW', 'Mid', 'Final','Total', 'Grade'))
for i in range(0, students):
    print(template.format(i+1, name[i], home[i], mid[i], final[i], total[i], grade[i]))

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
相关资源
最近更新 更多