Тема: Допоможіть, будь ласка
Розробити клас для представлення відомостей про успішність студента. Об'єкт класу має містити поля для збереження імені студента та балів, отриманих ним за виконання лабораторних робіт та індивідуального творчого завдання.
Забезпечити наступні методи класу: конструктор, який приймає рядок ім'я студента та словник, що містить налаштування курсу у наступному форматі: 1) максимально можлива кількість балів за здачу індивідуального творчого завдання; 2) максимально можлива кількість балів за здачу однієї лабораторної роботи; 3) кількість лабораторних робіт в курсі; метод, за допомогою якого вносяться оцінки за лабораторну роботу, яий приймає параметри оцінку та номер лабораторної роботи; метод, за допомогою якого вносяться дані про оцінку за індивідуальне творче завдання; метод, який повертає дійсне число (суму балів студента за проходження курсу).
False
False
Не можу знайти помилки.
class Student:
def __init__(self, name, settings):
self.name = name
self.settings = settings
self.labs = [0.0]*(settings['lab_num'])
self.exam = 0.0
def make_lab(self, m, n = None):
if(n == None):
for i in range(self.settings['lab_num']):
if(self.labs[i] == 0):
n = i
break
if(n >= self.settings['lab_num']):
return self
if(m > self.settings['lab_max']):
m = self.settings['lab_max']
self.labs[n] = m
return self
def make_exam(self, m):
if(m >= self.settings['exam_max']):
m = self.settings['exam_max']
self.exam = m
return self
self.exam = m
return self
def is_certified(self):
marks = 0.0
course_max = self.settings['exam_max'] + self.settings['lab_max'] * self.settings['lab_num']
for mark in self.labs:
marks += mark
marks += self.exam
if(float(marks)/float(course_max) < self.settings['k']):
return (marks, False)
else:
return (marks, True)
conf = {
'exam_max': 40,
'lab_max': 6,
'lab_num': 10,
'k': 0.60,
}
oleg = Student('Oleg', conf)
oleg.make_lab(6,1)
oleg.make_lab(6,2)
oleg.make_lab(6,3)
oleg.make_lab(6,4)
oleg.make_lab(3,5)
oleg.make_lab(2,6)
oleg.make_lab(1,7)
oleg.make_lab(1,8)
oleg.make_lab(1,9)
oleg.make_lab(1,10)
oleg.make_exam(40)
print(oleg.is_certified() == (59.5, False))
print(oleg.is_certified() == (62.5, True))