#import movimiento
class Movimiento:
def __init__(self, importe, nuevo_saldo):
self.op = 'i'
self.nuevo_saldo = nuevo_saldo
if importe < 0:
self.op = 'r'
self.importe = abs(importe)
def es_ingreso(self):
return self.op == 'i'
def __str__(self):
toret = "+"
if not self.es_ingreso():
toret = "-"
toret += str.format("{}/{}", self.importe, self.nuevo_saldo)
return toret
class Cuenta:
def __init__(self, saldo_inicial=0):
self.lista_movimientos = []
self.saldo = saldo_inicial
def ingresa(self, cantidad):
cantidad = abs(cantidad)
self.saldo += cantidad
self.lista_movimientos.append(Movimiento(cantidad, self.saldo))
def retira(self, cantidad):
cantidad = abs(cantidad)
self.saldo -= cantidad
self.lista_movimientos.append(Movimiento(-cantidad, self.saldo))
def movimientos(self):
toret = "Saldo actual: " + str(self.saldo)
for i in range(len(self.lista_movimientos) -1, -1, -1):
toret += "\n " + str(self.lista_movimientos[i])
return toret
def __str__(self):
return str(self.saldo)
if __name__ == "__main__":
c1 = Cuenta()
c2 = Cuenta(1000)
c1.ingresa(400)
c1.retira(70)
c2.ingresa(45)
c2.retira(45)
c2.retira(90)
print(c1.movimientos())
print(c2.movimientos())
I2ltcG9ydCBtb3ZpbWllbnRvCgpjbGFzcyBNb3ZpbWllbnRvOgoJZGVmIF9faW5pdF9fKHNlbGYsIGltcG9ydGUsIG51ZXZvX3NhbGRvKToKCQlzZWxmLm9wID0gJ2knCgkJc2VsZi5udWV2b19zYWxkbyA9IG51ZXZvX3NhbGRvCiAKCQlpZiBpbXBvcnRlIDwgMDoKCQkJc2VsZi5vcCA9ICdyJwogCgkJc2VsZi5pbXBvcnRlID0gYWJzKGltcG9ydGUpCiAKCWRlZiBlc19pbmdyZXNvKHNlbGYpOgoJCXJldHVybiBzZWxmLm9wID09ICdpJwogCglkZWYgX19zdHJfXyhzZWxmKToKCQl0b3JldCA9ICIrIgogCgkJaWYgbm90IHNlbGYuZXNfaW5ncmVzbygpOgoJCQl0b3JldCA9ICItIgogCgkJdG9yZXQgKz0gc3RyLmZvcm1hdCgie30ve30iLCBzZWxmLmltcG9ydGUsIHNlbGYubnVldm9fc2FsZG8pCgkJcmV0dXJuIHRvcmV0CgoKY2xhc3MgQ3VlbnRhOgoJZGVmIF9faW5pdF9fKHNlbGYsIHNhbGRvX2luaWNpYWw9MCk6CgkJc2VsZi5saXN0YV9tb3ZpbWllbnRvcyA9IFtdCgkJc2VsZi5zYWxkbyA9IHNhbGRvX2luaWNpYWwKCQkKCWRlZiBpbmdyZXNhKHNlbGYsIGNhbnRpZGFkKToKCQljYW50aWRhZCA9IGFicyhjYW50aWRhZCkKCQlzZWxmLnNhbGRvICs9IGNhbnRpZGFkCgkJc2VsZi5saXN0YV9tb3ZpbWllbnRvcy5hcHBlbmQoTW92aW1pZW50byhjYW50aWRhZCwgc2VsZi5zYWxkbykpCgkJCglkZWYgcmV0aXJhKHNlbGYsIGNhbnRpZGFkKToKCQljYW50aWRhZCA9IGFicyhjYW50aWRhZCkKCQlzZWxmLnNhbGRvIC09IGNhbnRpZGFkCgkJc2VsZi5saXN0YV9tb3ZpbWllbnRvcy5hcHBlbmQoTW92aW1pZW50bygtY2FudGlkYWQsIHNlbGYuc2FsZG8pKQoJCQoJZGVmIG1vdmltaWVudG9zKHNlbGYpOgoJCXRvcmV0ID0gIlNhbGRvIGFjdHVhbDogIiArIHN0cihzZWxmLnNhbGRvKQoJCWZvciBpIGluIHJhbmdlKGxlbihzZWxmLmxpc3RhX21vdmltaWVudG9zKSAtMSwgLTEsIC0xKToKCQkJdG9yZXQgKz0gIlxuICAgICIgKyBzdHIoc2VsZi5saXN0YV9tb3ZpbWllbnRvc1tpXSkKCQkJCgkJcmV0dXJuIHRvcmV0CgkJCglkZWYgX19zdHJfXyhzZWxmKToKCQlyZXR1cm4gc3RyKHNlbGYuc2FsZG8pCgkJCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKCWMxID0gQ3VlbnRhKCkKCWMyID0gQ3VlbnRhKDEwMDApCgkKCWMxLmluZ3Jlc2EoNDAwKQoJYzEucmV0aXJhKDcwKQoJCgljMi5pbmdyZXNhKDQ1KQoJYzIucmV0aXJhKDQ1KQoJYzIucmV0aXJhKDkwKQoJCglwcmludChjMS5tb3ZpbWllbnRvcygpKQoJcHJpbnQoYzIubW92aW1pZW50b3MoKSkK