Эмуляция таблицы базы данных с помощью класса и списка на Python

Задача. Создать список объектов. Каждый объект представляет собой как бы запись в таблице базы данных и включает поля: id, название_предмета, количество раз его ввода (qty).

id и qty должны вычисляться автоматически, пользователь вводит только название предмета.
id очередного предмета можно генерировать исходя из количества уже существующих объектов (элементов списка) + 1.

Перед тем, как создавать новый объект, проверяется нет ли уже с таким названием в списке. Если есть, то новый объект не создается, а вызывается метод, меняющий значение поля qty уже существующего объекта.

class Subject:
        def __init__(self, s):
                self.id = len(subjects) + 1
                self.name = s
                self.qty = 1
        def qty_change(self):
                pass
                self.qty += 1
 
subjects = []
print("Вводите названия предметов")
record = input()
while record != "н":
        flag = 0
        for i in subjects:
                if i.name == record:
                        i.qty_change()
                        flag = 1
                        break
        if flag == 0:
                a = Subject(record)
                subjects.append(a)
        record = input()
 
print ("%5s %12s %7s" % ("ID", "Предмет", "Кол-во"))
for i in subjects:
        print("%5s %12s %7s" % (i.id, i.name, i.qty))

Пример результата выполнения кода:

Вводите названия предметов
алгебра
химия
алгебра
физ-ра
биология
геометрия
физика
физика
н
   ID      Предмет Кол-во
    1      алгебра     2
    2        химия     1
    3       физ-ра     1
    4     биология     1
    5    геометрия     1
    6       физика     2

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x