24
Для вывода книги по автору определим функцию
printAuthorBooks
достаточно несколько раз вызвать функцию
findRecord
, меня стартовую
позицию и, в конечном счете, вывести на печать книгу нужного автора.
def printAuthorBooks(author, store):
pos = findRecord(author, 0, store)
while pos < len(store):
itemArrayPrint(pos, store)
print(pos)
pos = findRecord(author, pos + 1, store)
Для удаления записи из массива на языке C++ потребовалась бы
перестановка всех
записей от удаляемой к началу, однако в Python списки и,
значит, перемещать записи нет необходимости. Это происходит автоматически
def deleteArrayItem(pos, store):
try:
del store[pos]
#если не вышло удалить, значит элемента нет
except IndexError:
print("Нет такой книги")
Объявляем «книжный магазин» пустым
списком и как было ранее,
наладим связь с пользователем, запустив цикл
while True
, где и будем
ссылаться на функции, определенные ранее:
store = []
while True:
#Ввод
команды пользователем
inp = input('d — удалить книгу\na — добавить книгу\ns — поиск
книги\np — вывод всех книг\nq — выход\n')
#Удаление книги по номеру
if inp == 'd':
deleteArrayItem(int(input('Введите номер книги')), store)
#Добавление книги
elif inp=='a':
store.append(Book(input("Название: "), input("Автор: "),
input("Количество: "), input("Цена: "), input("Зал: "),
input("Шкаф: "), input("Полка: ")))
saveArray('test.txt', store)
else:
print("Не добавлено, количество книг 1000")
#Поиск и вывод
книги по автору
25
elif inp == 's':
printAuthorBooks(input("Автор: "),store)
#Печать всех записей
elif inp == 'p':
#Проверка, не пуст ли список
if len(store):
for i in range(len(store)):
itemArrayPrint(i, store)
else:
print("Список пуст")
#Выход из диалогового окна
elif inp=='q':
break
Достарыңызбен бөлісу: