Exercício Banco

  • aumentar o saldo
  • imprimir o saldo
  • sacar valor
  • dados do usuário
    • nome
    • cpf
    • numero conta

In [7]:
class Conta(object):
    
    def __init__(self, nome, cpf, numero, saldo=0):
        self.nome = nome
        self.cpf = cpf
        self.numero = numero
        self.saldo = saldo
    
    def deposito(self, valor):
        self.saldo = self.saldo + valor
    
    def saque(self, valor):
        self.saldo = self.saldo - valor
    
    def imprimir(self):
        print('Saldo: %s' % self.saldo)

In [8]:
c1 = Conta("fulano", "001", "000-1", 200)
c2 = Conta("sicrano", "002", "000-2")

In [9]:
c1.imprimir()


Saldo: 200

In [10]:
c1.saque(100)

In [11]:
c1.imprimir()


Saldo: 100

In [12]:
c1.saque(200)

In [13]:
c1.imprimir()


Saldo: -100

In [14]:
c1.deposito(300)

In [15]:
c1.imprimir()


Saldo: 200

In [31]:
class Conta(object):
    
    def __init__(self, nome, cpf, numero, saldo=0):
        self.nome = nome
        self.cpf = cpf
        self.numero = numero
        self.saldo = saldo
    
    def __add__(self, other):
        self.saldo = self.saldo + other
    
    def __sub__(self, other):
        self.saldo = self.saldo - other
    
    def __str__(self):
        return 'Saldo: %s' % self.saldo

    def imprimir(self):
        print(str(self))

In [32]:
c1 = Conta("fulano", "001", "000-1", 200)

In [33]:
c1.imprimir()


Saldo: 200

In [34]:
c1 + 200

In [35]:
c1 + 200

In [36]:
c1.imprimir()


Saldo: 600

In [37]:
c1 - 200

In [38]:
c1.imprimir()


Saldo: 400

In [39]:
class Conta(object):
    
    def __init__(self, nome, cpf, numero, saldo=0):
        self.nome = nome
        self.cpf = cpf
        self.numero = numero
        self.saldo = saldo
    
    def __add__(self, other):
        self.saldo = self.saldo + other
    
    def __sub__(self, other):
        if self.saldo < other:
            raise Exception("Saque não permitido")
        self.saldo = self.saldo - other
    
    def __str__(self):
        return 'Saldo: %s' % self.saldo

    def imprimir(self):
        print(str(self))

In [40]:
c1 = Conta("fulano", "001", "000-1", 200)

In [41]:
c1 - 300


---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-41-f8c892e7930f> in <module>()
----> 1 c1 - 300

<ipython-input-39-ff631235c59f> in __sub__(self, other)
     12     def __sub__(self, other):
     13         if self.saldo < other:
---> 14             raise Exception("Saque não permitido")
     15         self.saldo = self.saldo - other
     16 

Exception: Saque não permitido

In [42]:
valor = int(input("Valor a ser sacado: "))


Valor a ser sacado: 300

In [43]:
try:
    c1 - valor
except Exception as ex:
    print(ex)


Saque não permitido

In [44]:
class SaqueNaoPermitido(Exception):
    msg = "Saque não permitido"

class Conta(object):
    
    def __init__(self, nome, cpf, numero, saldo=0):
        self.nome = nome
        self.cpf = cpf
        self.numero = numero
        self.saldo = saldo
    
    def __add__(self, other):
        self.saldo = self.saldo + other
    
    def __sub__(self, other):
        if self.saldo < other:
            raise SaqueNaoPermitido()
        self.saldo = self.saldo - other
    
    def __str__(self):
        return 'Saldo: %s' % self.saldo

    def imprimir(self):
        print(str(self))

In [45]:
c1 = Conta("fulano", "001", "000-1", 200)

In [47]:
valor = "teste"

In [48]:
try:
    c1 - valor
except SaqueNaoPermitido as ex1:
    print(ex1.msg)
except Exception as ex2:
    print(ex2)


unorderable types: int() < str()

In [ ]: