import json def add_new_book(book_list: list[dict[str, str]], book: dict[str, str]): # On précise le contenu des clefs et valeurs du dictionnaire """Ajoute un nouveau livre""" if book in book_list: return f"{book["Title"].upper()} y est déjà." book_list.append(book) return f"{book["Title"].upper()} a été ajouté." def take_out_book(book_list: list[dict[str, str]], title: str): """Retire un livre déjà présent""" for book in book_list: if book["Title"].lower() == title.lower(): book_list.remove(book) return f"{title.upper()} a été retiré." return f"{title.upper()} n'y est pas." def list_books_in_list(book_list: list[dict]): """Liste les livres présents""" return book_list def sort_books_by_name(book_list: list[dict]): """Tri les livres par ordre alphabétique""" book_list.sort(key= lambda dict: dict["Title"]) # pour trier par clefs et non plus par objets def display_number_of_books(book_list: list) -> int: """Donne le nombre de livres présents""" return len(book_list) def search_book_by_word(book_list: list[dict[str, str]], word: str): """Cherche un livre par mot de départ""" results = [] for book in book_list: if word.lower() in book["Title"].lower(): results.append(book) return results if len(results) > 0 else "Pas de résultat." def search_book_by_letter(book_list: list[dict[str, str]], letter: str): """Cherche un livre par lettre de départ""" results = [] for book in book_list: if book["Title"].startswith(letter): results.append(book) return results if len(results) > 0 else "Pas de résultat." # Sauvegarde des livres dans un JSON pour persistance des données def save(book_list): """Inscris dans un fichier JSON le contenu de la bibliothèque""" with open("books.json", "w") as json_file: json.dump(book_list, json_file, indent= 4) def load(): """Récupère le contenu d'un fichier JSON""" with open("books.json") as json_file: return json.load(json_file)