Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- FILE NAME: libretto.py
- LATEST VERSION: 1.0
- LAST EDIT: 14/12/2022
- AUTHOR: pp
- DESCRIPTION: contiene class Student e class Exam
- CHANGELOG:
- v. 1.0
- '''
- ### attributes
- # @name: str "nome dello studente"
- # @exams: list[class Exam]
- ### public methods
- # addmark(mark: Exam)
- class Student:
- def __init__(self, name: str = '', exams: list[Exam] = []):
- self.name = str(name)
- self.marks = exams
- self.mean = self.__calcWMean(self.marks)
- self.cfu = self.__calcCfus(self.marks)
- def addmark(self, mark):
- self.marks.append(mark)
- self.mean = self.__calcWMean(self.marks)
- self.cfu = self.__calcCfus(self.marks)
- def __calcWMean(self, listexams:list):
- return round(sum(i.cfu * i.mark for i in listexams)/sum(i.cfu for i in listexams),2)
- def __calcCfus(self, listexams:list):
- return sum(i.cfu for i in listexams)
- def __repr__(self) -> str:
- name = "Nome: "+str(self.name)+'\n'
- marks = 'Esami:\n'
- for i in self.marks:
- marks += str(i)+'\n'
- mean = "Media: " + str(self.calcMean()) + '\n'
- cfus = "Crediti: " + str(self.calcCFU())+'\n'
- return name + marks + mean + cfus
- class Exam:
- def __init__(self, name='', CFU=0.0, mark=0.0):
- self.name = name
- self.cfu = CFU
- self.mark = mark
- def setname(self, name:str) -> None:
- self.name = name
- def setcfu(self, cfu:float) -> None:
- self.cfu = cfu
- def setmark(self, mark:float) -> None:
- self.mark = mark
- def __repr__(self) -> str:
- return f"\t{self.name}\n\tCFU: {self.cfu}\n\tvoto: {self.mark}\n"
- ### da sistemare
- class ListExams:
- def __init__(self):
- pass
- def append(self, exam):
- self.append()
- def __repr__(self) -> str:
- r = ''
- for i in range():
- pass
- # a = Exam('sistemi', 10, 29)
- # b = Exam('algebra', 9, 24)
- # esami = [a,b]
- # s = Student('Gio', esami)
- # print(s)
- # erledigt!
- ### class Menu: lista di pair (indice, azione)
- # class Menu:
- # def __init__(self, choices=list([])):
- # self.choices = choices
- # def append(self, idx, choice):
- # self.choices.append((str(idx), choice))
- # return
- # def __repr__(self) -> str:
- # functions = ''
- # for i in self.choices:
- # functions += f"{i[0]}. {i[1]}\n"
- # return functions
Advertisement
Add Comment
Please, Sign In to add comment