У меня есть начальный код:
books = []
def add_book():
name = input('Input the name of the book: ')
author = input('Input the author: ')
print('Book added successfully.')
books.append(
{
'name': name,
'author': author,
'read': False
}
)
Мне нужно, чтобы пользователь мог указать название книги, и если его вводные данные совпадают с именем в books
, удалите весь словарь, который книга ее упоминается. Я придумал этот код:
def delete_book():
user_input = input('Input the name of the book to be deleted: ')
for book in books:
for key, value in book.items():
if book['name'] == user_input:
books.remove(book)
Но он не работает ... Я просмотрел около 2 часов, чтобы найти решение, и, как новичок, я не могу понять этого, может быть, вы, ребята, сможете очистить в моем уме.
Теперь еще раз взглянем на значение ключа read
из словаря. Я хочу, чтобы пользователь мог изменить значение на True. Я перепробовал много версий, но это еще сложнее. Вот что у меня есть:
def mark_read(): # TODO REVIEW !!!!
book_name = input('Input name of the book: ')
for book in books:
if book == book_name:
user_input = input('Mark book as read? (y/N): ')
if user_input == 'N' or 'n':
print('No changes were made')
elif user_input == 'Y' or 'y':
book.update(read=True)
else:
print('The specified book is not currently in our database.')
Итак, не могли бы вы сказать мне, где я ошибаюсь, дайте мне лучший, но читабельный вариант?