0

I Make A Code Like This, But I Have A Problem ...

    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"

Instead making a printout like this, i want to put it in to a table but i dont know how to do it, anyone can help me ??

    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()

Output Image : https://i.stack.imgur.com/x0VCa.png

1 Answers1

0

I recommend that you get comfortable with the str.format function. It works wonders for this kind of thing.

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]))
Patrick Haugh
  • 59,226
  • 13
  • 88
  • 96