#
# 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