Semaine 4, jour 2

This commit is contained in:
gauvainboiche
2026-01-14 10:21:12 +01:00
parent aad907f110
commit 4911bbd40c
32 changed files with 912 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
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)