livres = [
{"titre": "1984", "auteur": "George Orwell", "annee": 1949, "disponible": True},
{"titre": "Le Petit Prince", "auteur": "Antoine de Saint-Exupéry", "annee": 1943, "disponible": True},
{"titre": "Le Hobbit", "auteur": "J.R.R. Tolkien", "annee": 1937, "disponible": True}
]
emprunteurs = [
{"nom": "Alice", "livres_empruntes": []},
{"nom": "Bob", "livres_empruntes": []}
]
def ajouter_livre(livres, titre, auteur, annee):
livre = {"titre": titre, "auteur": auteur, "annee": annee, "disponible": True}
livres.append(livre)
def ajouter_emprunteur(emprunteurs, nom):
emprunteur = {"nom": nom, "livres_empruntes": []}
emprunteurs.append(emprunteur)
def emprunter_livre(livres, emprunteurs, nom_emprunteur, titre_livre):
for emprunteur in emprunteurs:
if emprunteur["nom"] == nom_emprunteur:
for livre in livres:
if livre["titre"] == titre_livre and livre["disponible"]:
livre["disponible"] = False
emprunteur["livres_empruntes"].append(titre_livre)
return True
return False
def rendre_livre(livres, emprunteurs, nom_emprunteur, titre_livre):
for emprunteur in emprunteurs:
if emprunteur["nom"] == nom_emprunteur:
if titre_livre in emprunteur["livres_empruntes"]:
emprunteur["livres_empruntes"].remove(titre_livre)
for livre in livres:
if livre["titre"] == titre_livre:
livre["disponible"] = True
return True
return False
def afficher_livres_disponibles(livres):
for livre in livres:
if livre["disponible"]:
print(f"{livre['titre']} par {livre['auteur']} ({livre['annee']})")
def afficher_emprunteurs(emprunteurs):
for emprunteur in emprunteurs:
print(f"{emprunteur['nom']} a emprunté : {', '.join(emprunteur['livres_empruntes']) if emprunteur['livres_empruntes'] else 'aucun livre'}")
# Ajouter un livre
ajouter_livre(livres, "Le Seigneur des Anneaux", "J.R.R. Tolkien", 1954)
# Ajouter un emprunteur
ajouter_emprunteur(emprunteurs, "Charlie")
# Emprunter un livre
emprunter_livre(livres, emprunteurs, "Alice", "Le Petit Prince")
# Rendre un livre
rendre_livre(livres, emprunteurs, "Alice", "Le Petit Prince")
# Afficher les livres disponibles
afficher_livres_disponibles(livres)
# Afficher les emprunteurs et les livres empruntés
afficher_emprunteurs(emprunteurs)