# Classe Livre
class Livre:
def __init__(self, titre, auteur):
# Initialise les attributs du livre : titre, auteur et état d’emprunt
[Link] = titre
[Link] = auteur
self.est_emprunte = False # Par défaut, le livre n’est pas emprunté
def emprunter(self):
# Permet d’emprunter le livre s’il est disponible
if not self.est_emprunte:
self.est_emprunte = True # On marque le livre comme emprunté
return True # Emprunt réussi
return False # Le livre était déjà emprunté
def retourner(self):
# Permet de retourner un livre emprunté
if self.est_emprunte:
self.est_emprunte = False # On marque le livre comme disponible
return True # Retour réussi
return False # Le livre n’était pas emprunté
# Classe Bibliothèque
class Bibliotheque:
def __init__(self):
# Initialise la bibliothèque avec une liste vide de livres
[Link] = []
def ajouter_livre(self, livre):
# Ajoute un livre à la bibliothèque
[Link](livre)
def afficher_livres(self):
# Affiche la liste complète des livres avec leur statut
print("\n 📚 Liste des livres dans la bibliothèque :")
if not [Link]:
print("Aucun livre disponible pour le moment.")
return
for livre in [Link]:
statut = "Emprunté" if livre.est_emprunte else "Disponible"
print(f"- {[Link]} par {[Link]} : {statut}")
print()
def trouver_livre(self, titre, auteur):
# Recherche un livre précis dans la bibliothèque
for livre in [Link]:
# Comparaison insensible à la casse (minuscules)
if [Link]() == [Link]() and [Link]() == [Link]():
return livre # Livre trouvé
return None # Livre introuvable
def verifier_disponibilite(self, titre, auteur):
# Vérifie si un livre est disponible, emprunté ou inexistant
livre = self.trouver_livre(titre, auteur)
if livre:
return "Disponible" if not livre.est_emprunte else "Emprunté"
return "Non trouvé"
# Programme principal interactif
def programme_interactif():
# Crée une instance de bibliothèque
biblio = Bibliotheque()
# Ajoute quelques livres de base à la bibliothèque
biblio.ajouter_livre(Livre("Le Petit Prince", "Antoine de Saint-Exupéry"))
biblio.ajouter_livre(Livre("1984", "George Orwell"))
# Boucle principale du menu
while True:
print("\nQue souhaitez-vous faire ?")
print("1. Afficher les livres")
print("2. Vérifier la disponibilité d'un livre")
print("3. Emprunter un livre")
print("4. Retourner un livre")
print("5. Ajouter un nouveau livre")
print("6. Quitter")
choix = input("Votre choix (1-6) : ")
if choix == "1":
# Affiche la liste des livres
biblio.afficher_livres()
elif choix == "2":
# Vérifie la disponibilité d’un livre
titre = input("Titre du livre : ")
auteur = input("Auteur du livre : ")
statut = biblio.verifier_disponibilite(titre, auteur)
print(f" 📘 Statut du livre : {statut}")
elif choix == "3":
# Permet d’emprunter un livre
titre = input("Titre du livre : ")
auteur = input("Auteur du livre : ")
livre = biblio.trouver_livre(titre, auteur)
if livre:
if [Link]():
print(" ✅ Livre emprunté avec succès.")
else:
❌ Ce livre est déjà emprunté.")
print("
else:
print(" ❌ Livre non trouvé.")
elif choix == "4":
# Permet de retourner un livre
titre = input("Titre du livre : ")
auteur = input("Auteur du livre : ")
livre = biblio.trouver_livre(titre, auteur)
if livre:
if [Link]():
✅ Livre retourné avec succès.")
print("
else:
❌ Ce livre n'était pas emprunté.")
print("
else:
print(" ❌ Livre non trouvé.")
elif choix == "5":
# Ajoute un nouveau livre à la bibliothèque
titre = input("Titre du nouveau livre : ")
auteur = input("Auteur du nouveau livre : ")
# Vérifie si le livre existe déjà
if biblio.trouver_livre(titre, auteur):
print("⚠ Ce livre existe déjà dans la bibliothèque.")
else:
nouveau_livre = Livre(titre, auteur)
biblio.ajouter_livre(nouveau_livre)
✅ Livre ajouté avec succès.")
print("
elif choix == "6":
# Quitte le programme
print(" 👋 Merci d’avoir utilisé la bibliothèque. À bientôt !")
break
else:
# Gestion des entrées invalides
print(" ❌ Choix invalide. Veuillez entrer un nombre entre 1 et 6.")
# Exécution du programme
programme_interactif()