Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao tentar executar outras funções

Olá,

Eu consigo criar uma conta, mas o problema é que não consigo executar as outras funções, como depósito e ele me retorna isso:

Eis o código:

def criar_conta(numero, titular, saldo, limite):
    conta = {"Número da conta": numero, "Titular da conta": titular, "Saldo em conta": saldo, "Limite": limite}
    return conta

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

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

def mostrar_extrato(conta):
    print("Saldo: {}".format(conta["saldo"]))

Aí, o meu console:

PyDev console: starting.
Python 3.10.5 (tags/v3.10.5:f377153, Jun  6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
from teste import criar_conta, deposita_conta, sacar, mostrar_extrato
conta_1 = criar_conta(222, "Djaga", 70.0, 1500)
deposita_conta(conta_1, 100.0)
Traceback (most recent call last):
  File "C:\Users\djgrs\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "C:\Users\djgrs\PycharmProjects\objectsorient\venv\teste.py", line 6, in deposita_conta
    conta["saldo"] += valor
KeyError: 'saldo'

Olhei e reolhei a função e nada, agradeço a quem der uma luz aí

Flw <3

1 resposta
solução!

Oiii Leandro, como você está?

Quando estamos criando um dicionário em python seguimos a sintaxe de dar um nome a chave e apontar o seu valor. Assim, quando vamos chamar uma chave, é necessário que utilizemos exatamente o nome que escolhemos para ela.

O que está acontecendo é que o nome da chave que você está colocando nas funções deposita_conta, sacar e mostrar_extrato estão divergindo do nome que você definiu na função criar_conta. Uma das maneiras de corrigir isso, seguindo os nomes que você escolheu, seria:

def criar_conta(numero, titular, saldo, limite):
    conta = {"Numero da conta": numero, "Titular da conta": titular, "Saldo em conta": saldo, "Limite": limite}
    return conta

def deposita_conta(conta, valor):
    conta["Saldo em conta"] += valor

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

def mostrar_extrato(conta):
    print("Saldo: {}".format(conta["Saldo em conta"]))

Resultado:

>>> conta_1 = criar_conta(222, "Djaga", 70.0, 1500)
>>> deposita_conta(conta_1, 100.0)
>>> mostrar_extrato(conta_1)
Saldo: 170.0

Dessa maneira, o código vai conseguir encontrar sua chave direitinho :)

Caso queira se aprofundar sobre dicionários em python, recomendo a leitura do artigo Python: Trabalhando com dicionários, e se você tiver interesse de conhecer ainda mais o uso dos dicionários recomendo curso de Python Collections parte 2: conjuntos e dicionários na alura!

Em caso de dúvidas, me coloco à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!