hi!
I have another struggle. I'd like to have this kind of output:
som object studenta: Janko Mrkvicka
som object predmetu: fyzika, mam znamky: [4, 1] a priemer: 2,5
How can I make it?
my output is a bit different (it is in last line):
som object studenta: Janko Mrkvicka
som object predmetu: fyzika, mam znamky: [4, 1] a priemer: 0
som object predmetu: english, mam znamky: [1] a priemer: 0
som object predmetu: matematika, mam znamky: [] a priemer: 0
2
None
-----------------------------------------------------
som object studenta: Janka Vaskova
som object predmetu: dejepis, mam znamky: [1, 2, 3] a priemer: 0
som object predmetu: biologia, mam znamky: [] a priemer: 0
som object predmetu: english, mam znamky: [] a priemer: 0
som object predmetu: fyzika, mam znamky: [1] a priemer: 0
1
None
here is a complete code:
class Cstudent():
def __init__(self, name):
self.name = name
self.predmety = []
self.mark = []
self.absence = 0
def add_subject(self, predmet):
self.predmety.append(predmet)
def add_mark(self,predmet,mark):
for i in self.predmety:
if i.nazov == predmet:
i.add_znamka(mark)
def priemer_predmet(self,predmet):
for i in self.predmety:
if i.nazov == predmet:
i.average_predmet(predmet)
def __str__(self):
#return self.name
#return 'som objekt studenta: ' + (self.name)
return 'som object studenta: %s'% (self.name)
def print_zoznam_predmetov(self):
lst = []
for prd in self.predmety:
lst.append(str(prd))
return '\n'.join(lst)
#return '\n'.join(lst)
class Cpredmet():
def __init__(self, nazov):
self.nazov = nazov
self.znamky = []
self.priemer = int()
def add_znamka(self, znamka):
self.znamky.append(znamka)
def average_predmet(self, predmet):
p=sum(self.znamky) / len(self.znamky)
print p
def __str__(self):
#return self.nazov
return 'som object predmetu: %s, mam znamky: %s a priemer: %s' % \
(self.nazov, str(self.znamky), self.priemer)
def main():
# inicalizacia objektu student:
#-------------------------------
janko = Cstudent('Janko Mrkvicka')
janka = Cstudent ('Janka Vaskova')
# pridanie predmetu danemu objektu:
#-------------------------------
janko.add_subject(Cpredmet('fyzika'))
janko.add_subject(Cpredmet('english'))
janko.add_subject(Cpredmet('matematika'))
janka.add_subject(Cpredmet('dejepis'))
janka.add_subject(Cpredmet('biologia'))
janka.add_subject(Cpredmet('english'))
janka.add_subject(Cpredmet('fyzika'))
# predanie znamky danemu objektu:
#-------------------------------
janko.add_mark(predmet='fyzika',mark=4)
janko.add_mark(predmet='fyzika',mark=1)
janko.add_mark(predmet='english',mark=1)
janka.add_mark(predmet='dejepis',mark=1)
janka.add_mark(predmet='dejepis',mark=2)
janka.add_mark(predmet='dejepis',mark=3)
janka.add_mark(predmet='fyzika',mark=1)
# output:
#-------------------------------
print janko
print janko.print_zoznam_predmetov()
print janko.priemer_predmet('fyzika')
print '-----------------------------------------------------'
print janka
print janka.print_zoznam_predmetov()
print janka.priemer_predmet('fyzika')
if __name__ == '__main__':
main()