Задача. Создать список объектов. Каждый объект представляет собой как бы запись в таблице базы данных и включает поля: 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