1
resposta

O Out{3} proposto não está saindo. Está dando erro na primeira linha. Por que?

def km_media(dados, 2019):
    result = {}
    for item in dados.items():
        media = item[1]['km'] / (2019 - item[1]['ano'])
        result.update({ item[0]: media })
    return result
1 resposta

Olá Daniel,

O detalhe está nos parâmetros na criação da função, onde você colocou (dados, 2019) só é permitido colocar nomes de variáveis que você quer utilizar na função e não já os dados diretamente.

# Primeiro você cria a função e indica que quer receber dois valores: dataset e ano_atual
# dentro da função você trabalha com dataset e ano_atual
def km_media(dataset, ano_atual):
    result = {}
    for item in dataset.items():
        media = item[1]['km'] / (ano_atual - item[1]['ano'])
        result.update({ item[0]: media })
    return result

# Agora sim apenas quando estamos executando a função é que passamos os valores reais que queremos
# o primeiro valor é salvo na variável dataset e o segundo na variável ano_atual
km_media(dados, 2019)

Talvez os cursos mais específicos de python possam te ajudar mais sobre isso, recomendo esses abaixo:

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