fork download
  1. #import movimiento
  2.  
  3. class Movimiento:
  4. def __init__(self, importe, nuevo_saldo):
  5. self.op = 'i'
  6. self.nuevo_saldo = nuevo_saldo
  7.  
  8. if importe < 0:
  9. self.op = 'r'
  10.  
  11. self.importe = abs(importe)
  12.  
  13. def es_ingreso(self):
  14. return self.op == 'i'
  15.  
  16. def __str__(self):
  17. toret = "+"
  18.  
  19. if not self.es_ingreso():
  20. toret = "-"
  21.  
  22. toret += str.format("{}/{}", self.importe, self.nuevo_saldo)
  23. return toret
  24.  
  25.  
  26. class Cuenta:
  27. def __init__(self, saldo_inicial=0):
  28. self.lista_movimientos = []
  29. self.saldo = saldo_inicial
  30.  
  31. def ingresa(self, cantidad):
  32. cantidad = abs(cantidad)
  33. self.saldo += cantidad
  34. self.lista_movimientos.append(Movimiento(cantidad, self.saldo))
  35.  
  36. def retira(self, cantidad):
  37. cantidad = abs(cantidad)
  38. self.saldo -= cantidad
  39. self.lista_movimientos.append(Movimiento(-cantidad, self.saldo))
  40.  
  41. def movimientos(self):
  42. toret = "Saldo actual: " + str(self.saldo)
  43. for i in range(len(self.lista_movimientos) -1, -1, -1):
  44. toret += "\n " + str(self.lista_movimientos[i])
  45.  
  46. return toret
  47.  
  48. def __str__(self):
  49. return str(self.saldo)
  50.  
  51.  
  52.  
  53. if __name__ == "__main__":
  54. c1 = Cuenta()
  55. c2 = Cuenta(1000)
  56.  
  57. c1.ingresa(400)
  58. c1.retira(70)
  59.  
  60. c2.ingresa(45)
  61. c2.retira(45)
  62. c2.retira(90)
  63.  
  64. print(c1.movimientos())
  65. print(c2.movimientos())
  66.  
Success #stdin #stdout 0.04s 9404KB
stdin
Standard input is empty
stdout
Saldo actual: 330
    -70/330
    +400/400
Saldo actual: 910
    -90/910
    -45/1000
    +45/1045