pfizerpflanze

Untitled

Dec 15th, 2022 (edited)
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.46 KB | None | 0 0
  1. '''
  2. FILE NAME: libretto.py
  3. LATEST VERSION: 1.0
  4. LAST EDIT: 14/12/2022
  5. AUTHOR: pp
  6. DESCRIPTION: contiene class Student e class Exam
  7.  
  8. CHANGELOG:
  9. v. 1.0
  10. '''
  11.  
  12.  
  13.  
  14.  
  15.  
  16. ### attributes
  17. # @name: str "nome dello studente"
  18. # @exams: list[class Exam]
  19. ### public methods
  20. # addmark(mark: Exam)
  21.  
  22. class Student:
  23.  
  24.     def __init__(self, name: str = '', exams: list[Exam] = []):
  25.         self.name = str(name)
  26.         self.marks = exams
  27.         self.mean = self.__calcWMean(self.marks)
  28.         self.cfu = self.__calcCfus(self.marks)
  29.  
  30.     def addmark(self, mark):
  31.         self.marks.append(mark)
  32.         self.mean = self.__calcWMean(self.marks)
  33.         self.cfu = self.__calcCfus(self.marks)
  34.  
  35.     def __calcWMean(self, listexams:list):
  36.         return round(sum(i.cfu * i.mark for i in listexams)/sum(i.cfu for i in listexams),2)
  37.  
  38.     def __calcCfus(self, listexams:list):
  39.         return sum(i.cfu for i in listexams)
  40.  
  41.     def __repr__(self) -> str:
  42.         name = "Nome: "+str(self.name)+'\n'
  43.         marks = 'Esami:\n'
  44.         for i in self.marks:
  45.             marks += str(i)+'\n'
  46.         mean = "Media: " + str(self.calcMean()) + '\n'
  47.         cfus = "Crediti: " + str(self.calcCFU())+'\n'
  48.         return name + marks + mean + cfus
  49.  
  50.  
  51.  
  52. class Exam:
  53.     def __init__(self, name='', CFU=0.0, mark=0.0):
  54.         self.name = name
  55.         self.cfu = CFU
  56.         self.mark = mark
  57.  
  58.     def setname(self, name:str) -> None:
  59.         self.name = name
  60.  
  61.     def setcfu(self, cfu:float) -> None:
  62.         self.cfu = cfu
  63.  
  64.     def setmark(self, mark:float) -> None:
  65.         self.mark = mark
  66.    
  67.     def __repr__(self) -> str:
  68.         return f"\t{self.name}\n\tCFU: {self.cfu}\n\tvoto: {self.mark}\n"
  69.  
  70. ### da sistemare
  71. class ListExams:
  72.     def __init__(self):
  73.         pass
  74.    
  75.     def append(self, exam):
  76.         self.append()
  77.  
  78.  
  79.     def __repr__(self) -> str:
  80.         r = ''
  81.         for i in range():
  82.             pass
  83.  
  84.  
  85. # a = Exam('sistemi', 10, 29)
  86. # b = Exam('algebra', 9, 24)
  87. # esami = [a,b]
  88. # s = Student('Gio', esami)
  89. # print(s)
  90.  
  91. # erledigt!
  92. ### class Menu: lista di pair (indice, azione)
  93. # class Menu:
  94.     # def __init__(self, choices=list([])):
  95.     #     self.choices = choices
  96.  
  97.     # def append(self, idx, choice):
  98.     #     self.choices.append((str(idx), choice))
  99.     #     return
  100.    
  101.     # def __repr__(self) -> str:
  102.     #     functions = ''
  103.     #     for i in self.choices:
  104.     #         functions += f"{i[0]}. {i[1]}\n"
  105.     #     return functions
Advertisement
Add Comment
Please, Sign In to add comment