Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao executar funções depositar, sacar e extrato

Olá Pessoal!! Estou tento problemas ao executar algumas funções. Ao importar as funções e chamar a função criar_conta, o console me responde corretamente aos dados que inseri.

Porém, ao tentar executar a função depositar, de acordo com o código abaixo, tenho como resposta o seguinte erro:

>>>criar_conta(123,50,1000)
{'numero': 123, 'saldo': 50, 'limite': 1000}

>>>depositar(123,50)
**Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\vitor\PycharmProjects\orientacaoAObjeto\teste.py", line 6, in depositar
    conta["saldo"] += valor
TypeError: 'int' object is not subscriptable**

A definição das minhas função estão abaixo:

def criar_conta(numero, saldo, limite):
    conta = {"numero": numero, "saldo": saldo, "limite": limite}
    return conta

def depositar(conta, valor):
    conta["saldo"] += valor

def sacar(conta, valor):
    conta["saldo"] -= valor

def extrato(conta):
    print("O saldo em conta é {}".format(conta["saldo"]))

Já revisei o código várias vezes haha Alguém consegue me ajudar a enxergar o que tá acontecendo??

Abraços!!

2 respostas
solução!

Oi Vítor, como você está?

Vamos recapitular alguns pontos:

  • Na função criar_conta retornamos a conta que foi criada.
  • Já na função depositar recebemos como parâmetro a conta e o valor para depósito.

Observe que quando você faz a chamada da função depositar, você está passando apenas o valor: depositar(123,50). Lembra que a função depositar também recebe a conta como parâmetro? Então, para corrigir isso, precisamos passar como parâmetro para função depositar a conta que criamos e o valor que queremos depositar. Como a função criar_conta nos retorna uma conta, podemos salvar esse retorno em uma variável:

>> conta_criada  = criar_conta(123,50,1000)

>>  extrato(conta_criada)
O saldo em conta é 50

>> depositar(conta_criada, 123.50)

>>  extrato(conta_criada)
O saldo em conta é 173.5

Outro detalhe importante: em números que possuem casas decimais utilizamos o ponto e não a vírgula.

Pegou a ideia?

Se precisar de mim estou por aqui! =)

Abraços e bons estudos!

Ooi Nádia!!

Fiz as alterações que sugeriu e deu tudo certo! Muito obrigado pelos conselhos.

Abraço!