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

Boa tarde, defini essa função porém o return dela é somente o primeiro resultado, verifiquei que o tipo da variável fica como float. Como conseguiria resolver ?

def km_media(dataset, ano_atual):

for item in dataset.items():

result = item[1]['km'] / (ano_atual -  item[1]['ano'])

return(result)

resultado = km_media(dados, 2019)

type(resultado)

1 resposta
solução!

Olá Wallace,

Confirma por favor se o return está dentro ou fora do for, acabou ficando uma parte do código sem formatação aqui.

Com o return dentro do for, após calcular o valor do primeiro carro já é executado o return que para toda a execução do for e da função e retorna esse valor do primeiro carro.

Após remover o return do for e colocar no final da função outro problema aparece. Acontece que o valor que você salva em result é sobrescrito a cada loop do for, você está sempre salvando o valor do cálculo na mesma variável, assim o valor do cálculo do carro anterior é perdido.

Se você quer o valor de todos os cálculos pode então salvar em uma lista, exemplo:

def km_media(dataset, ano_atual):
    # Inicia uma lista vazia para guardar todos os valores
    resultados = []

    for item in dataset.items():
        result = item[1]['km'] / (ano_atual -  item[1]['ano'])
        # Adiciona o valor do cálculo atual na lista
        resultados.append(result)

    # Por fim retornamos a lista
    return(resultados)


resultado = km_media(dados, 2019)

Espero ter ajudado, qualquer dúvida é só falar!