1

Тема: Підкажіть, будь ласка))

Потрібно доповнити розроблену програму збереженням даних в базі даних Microsoft Access. Додати до створеного класу методи для запису даних у базу даних, видалення записів із бази, пошуку записів по заданому критерію. Підкажіть, будь ласка, як я можу це зробити?

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(conf)

2

Re: Підкажіть, будь ласка))

Встановлюйте pypyodbc (через pip, наприклад). Тільки переконайтеся, що бітність Access і Python однакова. Приклад коду.
Утім, ще доведеться SQL вчити.

Подякували: leofun011