Solution officielle
class CompteBancaire:
def __init__(self, solde=0):
self.solde = solde
def deposer(self, montant):
if montant <= 0:
raise ValueError("Le montant doit etre positif")
self.solde += montant
def retirer(self, montant):
if montant <= 0:
raise ValueError("Le montant doit etre positif")
if montant > self.solde:
raise ValueError("Solde insuffisant")
self.solde -= montant
def get_solde(self):
return self.solde
def tester_compte():
# Test création sans solde
c = CompteBancaire()
assert c.get_solde() == 0, "Un nouveau compte devrait avoir un solde de 0"
# Test création avec solde
c2 = CompteBancaire(100)
assert c2.get_solde() == 100, "Le solde initial devrait etre 100"
# Test depot
c.deposer(50)
assert c.get_solde() == 50, "Apres un depot de 50, le solde devrait etre 50"
# Test retrait
c.retirer(20)
assert c.get_solde() == 30, "Apres un retrait de 20, le solde devrait etre 30"
# Test depot negatif
try:
c.deposer(-10)
assert False, "Un depot negatif devrait lever une ValueError"
except ValueError:
pass
# Test retrait superieur au solde
try:
c.retirer(1000)
assert False, "Un retrait superieur au solde devrait lever une ValueError"
except ValueError:
pass
# Test sequence d'opérations
c3 = CompteBancaire(100)
c3.deposer(50)
c3.retirer(30)
c3.deposer(20)
assert c3.get_solde() == 140, "100 + 50 - 30 + 20 devrait donner 140"
return "OK"