Solution :-
Download Python File :- Download
import operator
input('')
class Stu:
def __init__(self, name, fname):
self.name = name
self.fname = fname
self.num = 0
self.total = 0
def add(self, gr):
self.num +=1
if gr=="A":
self.total +=10
elif gr=="AB":
self.total+=9
elif gr=="B":
self.total+=8
elif gr=="BC":
self.total+=7
elif gr=="C":
self.total+=6
elif gr=="CD":
self.total+=5
elif gr=="D":
self.total+=4
class Marks:
def __init__(self, sub, scode, grade):
self.sub = sub
self.scode = scode
self.grade = grade
ss=[]
mm=[]
flag = True
z= input('')
while True:
z= input('')
xxx = z.split('~')
if len(xxx)==1 or len(xxx)==0:
break
if len(z)==0:
break
z= input('')
while True:
xxx = z.split('~')
if len(xxx)==1 or len(xxx)==0:
break
a,b = xxx
x= Stu(a,b)
ss.append(x)
z= input('')
if len(z)==0:
break
z= input('')
while True:
xxx = z.split('~')
if len(xxx)==1:
break
a,b,c,d,e = xxx
x= Marks(a,d,e)
mm.append(x)
z= input('')
if len(z)==0:
break
def ser(ss,tos):
for s in ss:
if s.name==tos:
return s
for m in mm:
ser(ss,m.scode).add(m.grade)
ss.sort(key=operator.attrgetter('name'))
for s in ss:
if s.num == 0:
fff=0
print(s.name + "~"+s.fname +"~"+str(fff))
else:
fff =float(s.total) /float(s.num)
print(s.name + "~"+ s.fname+ "~" + str(round(fff,2)))