3
respostas

Desafio hora da prática questão 9

Mina solução ficou um pouco diferente da solução do instrutor por eu ter entendido um pouco errado o que foi pedido. Apesar disso gostaria que meu código fosse avaliado para que eu pudesse ter um feedback sobre a formatação do mesmo. Segue o código.

Questão 9 Você recebeu o desafio de criar um código que calcula os gastos de uma viagem para um das quatro cidades partindo de Recife: Salvador, Fortaleza, Natal e Aracaju.

O custo da diária do hotel é de 150 reais em todas elas e o consumo de gasolina na viagem de carro é de 14 km/l, sendo que o valor da gasolina é de 5 reais o litro. O gastos com passeios e alimentação a se fazer em cada uma delas por dia seria de [200, 400, 250, 300], respectivamente.

Sabendo que as distâncias entre Recife e cada uma das cidades é de aproximadamente [850, 800, 300, 550] km, crie três funções nas quais a 1ª calcule os gastos com hotel (gasto_hotel), a 2ª calcule os gastos com a gasolina (gasto_gasolina) e a 3ª os gastos com passeio e alimentação (gasto_passeio).

Para testar, simule uma viagem de 3 dias para Salvador partindo de Recife. Considere a viagem de ida e volta de carro.

Minha solução:

cidades = ['Salvador', 'Fortaleza', 'Natal', 'Aracaju']
distancia = [850, 800, 300, 550]
gastos_dia = [200, 400, 250, 300]
dias = int(input('Digite a quantidade de dias da viagem: '))

def gasto_hotel(dias: int) -> float:
  gasto_hotel = 150 * dias
  return gasto_hotel
gasto_hotel = gasto_hotel(dias)

def gasto_gasolina(lista:list) -> list:
  gasto_gasolina = []
  for i in range(len(lista)):
    gasto_gasolina.append(((lista[i] / 14) * 5) * 2)
  return gasto_gasolina
gasto_gasolina = gasto_gasolina(distancia)

def gasto_passeio(lista: list) -> list:
  gasto_passeio = []
  for i in range(len(lista)):
    gasto_passeio.append(lista[i]*dias)
  return gasto_passeio
gasto_passeio = gasto_passeio(gastos_dia)

for i in range(len(cidades)):
  print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidades[i]} saindo de Recife custaria {round(gasto_hotel + gasto_gasolina[i] + gasto_passeio[i], 2)} reais")
3 respostas

Olá, Victor! Tudo bom?

Continue nesse caminho de resolver os exercícios! Primeiramente, fiz questão de testar o seu código e ele está entregando os valores da viagem de forma correta, todo o seu cálculo está certinho.

Trecho de código calculando despesas de viagem para quatro cidades com base em dias, custos de hotel e consumo de combustível, com a saída exibida abaixo.

E você chegou a uma observação fantástica, percebeu que a sua solução não ficou exatamente igual ao do instrutor, isso é muito comum na programação! Existem n maneiras de resolver um mesmo problema e explorar essa variedade de soluções é algo muito bom para o seu aprendizado.

A diferença é que, como você pode observar abaixo, a solução do instrutor não vai printar todas as possibilidades de viagens, porque o programa usa da função input() para ler o destino da viagem do usuário primeiro.

Trecho de código em Python mostrando uma função para calcular despesas de viagem com base na cidade e no número de dias de viagem.

Sobre a formatação do seu código, gostei muito que você definiu os tipos dos parâmetros na função e ainda definiu o tipo de retorno, isso implica em uma codificação madura e exemplar.

Tudo bem, Daniel... O que eu faço diante dessa diferença de solução que observei? Explore isso em problemas futuros! Com certeza você já não é mais o mesmo depois que encarou esse desafio. Você entendeu que ler o destino de viagem do usuário antes é uma boa alternativa, isso é um aprendizado que vai te acompanhar nos próximos algoritmos que for programar daqui em diante!

Se precisar, fico à disposição! Conte com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Modifiquei o código para incluir a parte de ler o destino e a saída ser somente esse destino. Irei colocar aqui a solução para caso alguém queira ver a diferença.

meu código:

cidades = ['Salvador', 'Fortaleza', 'Natal', 'Aracaju']
distancia = [850, 800, 300, 550]
gastos_dia = [200, 400, 250, 300]
dias = int(input('Digite a quantidade de dias da viagem: '))
cidade = input('Digite a cidade de destino [Salvador, Fortaleza, Natal, Aracaju]: ').title()

def gasto_hotel(dias: int) -> float:
  gasto_hotel = 150 * dias
  return gasto_hotel
gasto_hotel = gasto_hotel(dias)

def gasto_gasolina(lista:list) -> list:
  gasto_gasolina = []
  for i in range(len(lista)):
    gasto_gasolina.append(((lista[i] / 14) * 5) * 2)
  return gasto_gasolina
gasto_gasolina = gasto_gasolina(distancia)

def gasto_passeio(lista: list) -> list:
  gasto_passeio = []
  for i in range(len(lista)):
    gasto_passeio.append(lista[i]*dias)
  return gasto_passeio
gasto_passeio = gasto_passeio(gastos_dia)

for i in cidades:
  if i == cidade:
    cidade_existe = True
    break
  else:
    cidade_existe = False

if cidade_existe == True:
  print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidade} saindo de Recife custaria {round(gasto_hotel + gasto_gasolina[cidades.index(cidade)] + gasto_passeio[cidades.index(cidade)], 2)} reais")
else:
    print(f'{cidade} não encontrada')

Bom dia, Victor!

Fico feliz por ter explorado essa segunda possibilidade para resolver o desafio. Como você pode ver na imagem abaixo, executei o seu algoritmo e está adotando aquilo que havíamos conversado anteriormente, perguntando ao usuário o destino da viagem por meio do input. Permaneça postando suas soluções! Isso colabora com os outros estudantes e é muito importante para a comunidade Alura.

Imagem de código Python calculando despesas de viagem para Aracaju, exibindo os custos totais com base nos dias de entrada e no destino.

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!