Эмуляция таблицы базы данных с помощью класса и списка на 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

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