verifierSolde() : affiche le solde actuel lisiblement.
Dans le programme principal, crée deux comptes (bob, joel) et rejoue la séquence d’appels donnée ci-dessous.
? Code de départ (fourni)
# Online Python course PandaCodeur.com
class CB:
def __init__(self, nom, soldinit=0):
self.nom = nom
self.soldinit = soldinit
def deposer(self, montant):
if montant > 0:
self.soldinit += montant
print(f"{montant} depose et le New solde: {self.soldinit}")
else:
print("Le montant doit être positif.")
def retirer(self, montant):
if 0 < montant <= self.soldinit:
self.soldinit -= montant
print(f"{montant} retiré et New solde: {self.soldinit}")
else:
print("Montant invalide // solde insuffisant.")
def verifierSolde(self):
print(f"Solde actuel de {self.nom}: {self.soldinit} ")
if __name__ == "__main__":
c1 = CB("bob", 100)
c2 = CB("joel", 500)
c1.verifierSolde()
c1.deposer(200)
c1.retirer(150)
c1.verifierSolde()
c2.verifierSolde()
c2.deposer(300)
c2.retirer(600)
c2.verifierSolde()
✅ Solution
1) Validation des règles métier
Dépôt : on accepte uniquement les montants strictement positifs (montant > 0). Sinon, on affiche « Le montant doit être positif. »
Retrait : on exige 0 < montant ≤ soldinit. En pratique :
si montant ≤ 0 → refus ;
si montant > soldinit → refus (solde insuffisant) ;
sinon → on débite puis on affiche le nouveau solde.
Affichage du solde : format « Solde actuel de <nom>: <solde> ».
2) Trace d’exécution attendue
On suit exactement la séquence d’appels présente dans le bloc __main__.
Étape
Action
Sortie à l’écran
Solde après l’action
1
c1.verifierSolde()
Solde actuel de bob: 100
c1 = 100
2
c1.deposer(200)
200 depose et le New solde: 300
c1 = 300
3
c1.retirer(150)
150 retiré et New solde: 150
c1 = 150
4
c1.verifierSolde()
Solde actuel de bob: 150
c1 = 150
5
c2.verifierSolde()
Solde actuel de joel: 500
c2 = 500
6
c2.deposer(300)
300 depose et le New solde: 800
c2 = 800
7
c2.retirer(600)
600 retiré et New solde: 200
c2 = 200
8
c2.verifierSolde()
Solde actuel de joel: 200
c2 = 200
Remarque : le retrait de 600€ sur c2 réussit car le solde de c2 est de 800€ après le dépôt. Le solde final de c2 devient 200€.
3) Pourquoi ces conditions ?
Éviter les dépôts nuls/négatifs : ce sont des entrées invalides côté métier.
Empêcher les découverts non autorisés : montant > soldinit est refusé.
Rendre l’interface verbale claire : chaque opération affiche un message explicite.
4) Code complet de la solution
class CB:
def __init__(self, nom, soldinit=0):
self.nom = nom
self.soldinit = soldinit
def deposer(self, montant):
if montant > 0:
self.soldinit += montant
print(f"{montant} depose et le New solde: {self.soldinit}")
else:
print("Le montant doit être positif.")
def retirer(self, montant):
if 0 < montant <= self.soldinit:
self.soldinit -= montant
print(f"{montant} retiré et New solde: {self.soldinit}")
else:
print("Montant invalide // solde insuffisant.")
def verifierSolde(self):
print(f"Solde actuel de {self.nom}: {self.soldinit} ")
if __name__ == "__main__":
c1 = CB("bob", 100)
c2 = CB("joel", 500)
c1.verifierSolde()
c1.deposer(200)
c1.retirer(150)
c1.verifierSolde()
c2.verifierSolde()
c2.deposer(300)
c2.retirer(600)
c2.verifierSolde()
5) Sortie complète attendue (copiable/collable)
Solde actuel de bob: 100
200 depose et le New solde: 300
150 retiré et New solde: 150
Solde actuel de bob: 150
Solde actuel de joel: 500
300 depose et le New solde: 800
600 retiré et New solde: 200
Solde actuel de joel: 200
✨ Bonus (facultatif) : ajouter un virement entre comptes
Ajoute virement(self, autre_cb, montant) qui transfère de l’argent si montant > 0 et si le solde est suffisant.
def virement(self, autre_cb, montant):
if montant <= 0:
print("Le montant doit être positif.")
return
if montant > self.soldinit:
print(f"Solde insuffisant sur {self.nom}.")
return
self.soldinit -= montant
autre_cb.soldinit += montant
print(f"Virement de {montant} de {self.nom} → {autre_cb.nom}. Nouveaux soldes: {self.soldinit} / {autre_cb.soldinit}")
Si vous avez trouvé les exercices corrigés en Python de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !
Contact WhatsApp : +237 652027193 | Réaliser Par Joël_Yk