1
resposta

[Sugestão] Uma solução alternativa do exercício, com um artifício para alinhamento de escrita de rastreio da execução

# 
# este codigo exemplifica uma possivel solucao do exercicio 
# proposta por programador que considere mais "natural" ou "intuitivo"
# percorrer um dicionario executando iteracoes ao longo das chaves 
# do dicionario, ao invés de executar iteracoes ao longo dos items do 
# dicionario
#
# diferentemente da sugestão que consta no enunciado do exercício,
# esse programador poderia considerar mais "natural" ou "intuitivo"
# calcular a idade de um veiculo por meio da expressao 
# idade = ( ano_atual - ano_fabricacao ) + 1 
#

ano_atual = 2019

chaves = dados.keys ()

#
# dica:
#
# para identificar qual expressao utilizar para solucionar o exercício, 
# fazer o seguinte:
# 
# escrever a instrucao da linha "a", rodar o programa, ler a escrita
# escrever a instrucao da linha "b", rodar o programa, ler a escrita
# escrever a instrucao da linha "c", rodar o programa, ler a escrita
# escrever a instrucao da linha "d", rodar o programa, ler a escrita
#
# após identificar qual expressao utilizar para solucionar o exercício, 
# fazer o seguinte:
#
# escrever a instrucao da linha "e" 
# escrever as instrucoes de linhas posteriores à linha "e"
#

for chave in chaves :

  print ( "                   chave = " , chave                      )  # a
  print ( "         dados [ chave ] = " , dados [ chave ]            )  # b
  print ( "dados [ chave ] [ 'km' ] = " , dados [ chave ] [ 'km'  ]  )  # c
  print ( "dados [ chave ] [ 'ano'] = " , dados [ chave ] [ 'ano' ]  )  # d 
  print ( )

# obter valores requeridos para calcular quilometragem anual média 

  quilometragem = dados [ chave ] [ 'km' ]                              # e
  ano_fabricacao = dados [ chave ] [ 'ano' ] 

# evitar obtenção de idade negativa 

  if ( ano_atual < ano_fabricacao ) :
    idade = 1 
  else :
    idade = 1 + ( ano_atual - ano_fabricacao )

# obter quilometragem média 

  calculo = quilometragem / idade 

# definir parametros de artificio para alinhar escrita de rastreio 
#
# o alinhamento será efeito de uma indentacao com extensao
# igual aa diferenca de extensoes de duas cadeias de caracteres 

  extensao_maior = len ( "dados [ chave ] [ 'ano'] = " )
  extensao_menor = len ( "quilometragem = "            )
  espacamento = extensao_maior - extensao_menor 

# iniciar parametros para indentar escrita de 
# quilometragem, idade e calculo 

  indentacao = ""
  um_espaco = " "

# parametros de range utilizado para formar indentacao de escrita 

  primeiro_parametro = 1 
  segundo_parametro = espacamento 
  range_espaco = range ( primeiro_parametro , segundo_parametro )

# controlar a formacao da indentacao de escrita por meio de range 

  for espaco in range_espaco :
      indentacao = indentacao + um_espaco

# a escrita de quilometragem, idade e calculo
# é precedidade pela escrita de indentacao 

  print ( indentacao , "quilometragem = " , quilometragem ) 
  print ( indentacao , "        idade = " , idade         ) 
  print ( indentacao , "      calculo = " , calculo       )
  print ( )
# A escrita realizada pela execução do programa é:
                   chave =  Crossfox
         dados [ chave ] =  {'km': 35000, 'ano': 2005}
dados [ chave ] [ 'km' ] =  35000
dados [ chave ] [ 'ano'] =  2005

           quilometragem =  35000
                   idade =  15
                 calculo =  2333.3333333333335

                   chave =  DS5
         dados [ chave ] =  {'km': 17000, 'ano': 2015}
dados [ chave ] [ 'km' ] =  17000
dados [ chave ] [ 'ano'] =  2015

           quilometragem =  17000
                   idade =  5
                 calculo =  3400.0

                   chave =  Fusca
         dados [ chave ] =  {'km': 130000, 'ano': 1979}
dados [ chave ] [ 'km' ] =  130000
dados [ chave ] [ 'ano'] =  1979

           quilometragem =  130000
                   idade =  41
                 calculo =  3170.731707317073

                   chave =  Jetta
         dados [ chave ] =  {'km': 56000, 'ano': 2011}
dados [ chave ] [ 'km' ] =  56000
dados [ chave ] [ 'ano'] =  2011

           quilometragem =  56000
                   idade =  9
                 calculo =  6222.222222222223

                   chave =  Passat
         dados [ chave ] =  {'km': 62000, 'ano': 1999}
dados [ chave ] [ 'km' ] =  62000
dados [ chave ] [ 'ano'] =  1999

           quilometragem =  62000
                   idade =  21
                 calculo =  2952.3809523809523
1 resposta

Oi! Tudo bem contigo?

É uma solução bem válida e consegue detalhar mais a solução do problema. Agradeço por trazer ela aqui no fórum e tenho certeza que vai ajudar alunos e alunas em seus códigos. Siga firme nos estudos e quaisquer dúvidas você pode levar ao fórum que estaremos dispostos a ajudar ;-)

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software