Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

A função cria_conta funciona, mas as demais funções não reconhecem a "conta"

Quando tento executar uma das funções (deposita, saca ou extrato) aparece a mensagem dizendo que não reconhece "conta", criada na função "cria_conta". Como se resolve isso?

O arquivo teste.py está na pasta raiz e a importação de todas as funções ocorre perfeitamente.

Grato.

7 respostas

Fabricio, compartilhe seu código. Lembre de usar o botão "<> Inserir Código" para isso, facilita na leitura do código.

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

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

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

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

Apenas as funções DEPOSITA, SACA e EXTRATO não funcionam... Ao tentar executa-las recebo a mensagem de que conta não foi identificado, apesar de haver o "return conta" na CRIA_CONTA

Olá Fabricio,

Esse código que você mandou não tem erros, então o problema deve estar em como você está executando essas funções, mas só vendo o restante do seu código pra ter certeza.

Exemplo de uso:

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

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

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

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

conta = cria_conta(123, 'Lucas', 500, 1000)
extrato(conta)

deposita(conta, 200)
extrato(conta)

saca(conta, 100)
extrato(conta)
# Resultado
Saldo 500
Saldo 700
Saldo 600

Olá, bom dia. Segue:

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

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

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

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

No Console, fiz a importação, criei a conta, e ao solicitar o "extrato" é exibido o erro. O mesmo acontece se tento usar a "deposita" ou "saca". Curioso... Tentei trocar o asterisco da importação pelos nomes das funções, mas de nada adiantou.

from teste import *
cria_conta(3, "fabricio", 2, 50)
{'numero': 3, 'titular': 'fabricio', 'saldo': 2, 'limite': 50}
extrato(conta)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'extrato' is not defined

Grato.

solução

Fabrício,

Vc não criou a variável "conta", para chamar a função, como fez o Lucas!

>>> conta = cria_conta(3, "fabricio", 2, 50)
>>> extrato(conta)
Saldo 2
>>>

Barbaridade!!! Que vacilo.

Obrigado, Welton!

Fabricio,

Que isso, Estamos juntos. Por favor feche a pergunta colocando como solucionado!