Python - Student Mark List
I have given here a simple python program to prepare student mark list with formatted output on the screen
This code is tested with Python version 2.6
class CStudent:
age = 0
marks = []
name = ""
total = 0
def __init__ (self, name, age, marks):
self.name = name
self.age = age
self.marks = marks
self.total = self.marks[0] + self.marks[1] + self.marks[2] + self.marks[3] + self.marks[4]
#This function PrintMarks_Mapping is not used in this program and it explains how to use mapping in print statements
def PrintMarks_Mapping(self):
print "%(name)-12s" %{"name" : self.name },
print "%(age)-4d" %{"age" : self.age },
print "%(mark)-4d" %{"mark" : self.marks[0] },
print "%(mark)-4d" %{"mark" : self.marks[1] },
print "%(mark)-4d" %{"mark" : self.marks[2] },
print "%(mark)-4d" %{"mark" : self.marks[3] },
print "%(mark)-4d" %{"mark" : self.marks[4] },
print "%(total)-4d" %{"total" : self.total }
def PrintMarks(self):
print "%-12s" %self.name,
print "%-4d" %self.age,
print "%-4d %-4d %-4d %-4d %-4d" %(self.marks[0],self.marks[1],self.marks[2],self.marks[3],self.marks[4] ),
print "%-4d" %self.total
print "Enter Number of Students: ",
maxstudents = 0
maxstudents = input()
i = 0
studentlist = []
#import random as r
for i in range(0, maxstudents):
marks = []
name = raw_input("Enter Student Name: ")
print "Enter Age: ",
age = input()
print "Enter Mark for Subject1: ",
marks.append(input())
print "Enter Mark for Subject2: ",
marks.append(input())
print "Enter Mark for Subject3: ",
marks.append(input())
print "Enter Mark for Subject4: ",
marks.append(input())
print "Enter Mark for Subject5: ",
marks.append(input())
#age = r.randint(16,19)
#for j in range(0, 5):
# marks.append(r.randint(30,99))
s = CStudent(name, age, marks);
studentlist.append(s)
print "\n"
print "Name Age Sub1 Sub2 Sub3 Sub4 Sub5 Total"
for i in range(0, len(studentlist)):
studentlist[i].PrintMarks()
#>>> import b
#Enter Number of Students: 3
#Enter Student Name: Kathir
#Enter Age: 33
#Enter Mark for Subject1: 5
#Enter Mark for Subject2: 7
#Enter Mark for Subject3: 10
#Enter Mark for Subject4: 20
#Enter Mark for Subject5: 21
#Enter Student Name: Lachu
#Enter Age: 5
#Enter Mark for Subject1: 80
#Enter Mark for Subject2: 85
#Enter Mark for Subject3: 89
#Enter Mark for Subject4: 90
#Enter Mark for Subject5: 92
#Enter Student Name: Aishu
#Enter Age: 2
#Enter Mark for Subject1: 90
#Enter Mark for Subject2: 92
#Enter Mark for Subject3: 95
#Enter Mark for Subject4: 97
#Enter Mark for Subject5: 99
#Name Age Sub1 Sub2 Sub3 Sub4 Sub5 Total
#Kathir 33 5 7 10 20 21 63
#Lachu 5 80 85 89 90 92 436
#Aishu 2 90 92 95 97 99 473
|
|