1
resposta

Questão 9 sugestão

custo_hotel = 150
consumo_gasolina = 14
gasolina = 5
# qtd_dias é definida pelo input do usuário
cidades = ["Salvador", "Fortaleza", "Natal", "Aracaju"]
gastos_passeio = [200, 400, 250, 300]
distancia = [850, 800, 300, 550]

def gasto_hotel(qtd_dias):
  """Calcula o gasto total com hotel."""
  valor_diaria = qtd_dias * custo_hotel
  return valor_diaria

def gasto_gasolina (destino):
  """Calcula o gasto total com gasolina para a viagem de ida e volta."""
  if destino in cidades:
    index = cidades.index(destino)
    km = distancia[index]
    # Calcula o custo numérico, sem formatar como string aqui
    custo = (km / consumo_gasolina) * gasolina * 2
    return custo
  else:
    # Retorna 0 se o destino não for encontrado
    print(f"A cidade {destino} não está na lista de destinos disponíveis.")
    return 0

def gasto_passeio(destino , qtd_dias):
  """Calcula o gasto total com passeio e alimentação."""
  if destino in cidades:
    index = cidades.index(destino)
    custo_diario = gastos_passeio[index]
    custo_total = custo_diario * qtd_dias
    return custo_total
  else:
    # Retorna 0 se o destino não for encontrado
    print(f"A cidade {destino} não está na lista de destinos disponíveis.")
    return 0


# Solicitar e validar a cidade de destino
destino = input(f"Informe a cidade de destino? ({', '.join(cidades)}) : ")
while destino not in cidades:
  print(f"Informe uma cidade válida: ({', '.join(cidades)}) ")
  destino = input(f"Informe a cidade de destino? ({', '.join(cidades)}) : ")

# Solicitar e validar a quantidade de dias
while True:
  try:
    qtd_dias = int(input("Informe a quantidade de dias de passeio: "))
    if qtd_dias >= 1:
      break
    else:
      print("Informe a quantidade de dias acima de 0!")
  except ValueError:
    print('Entrada inválida. Digite apenas números inteiros para a quantidade de dias.')


# Calcular os gastos usando as funções
custo_total_hotel = gasto_hotel(qtd_dias)
custo_total_gasolina = gasto_gasolina(destino)
custo_total_passeio = gasto_passeio(destino, qtd_dias)

# Calcular o gasto total
gasto_total = custo_total_hotel + custo_total_gasolina + custo_total_passeio

# Exibir o resultado no formato solicitado
print(f"Com base nos gastos definidos, uma viagem de {qtd_dias} dias para {destino} saindo de Recife custaria {gasto_total:.2f} reais")
1 resposta

Ei, Marcus! Tudo bem?

Fico feliz em te ver treinando a atividade. Está certinho, parabéns! Você estruturou bem as funções e tratou as entradas do usuário de forma eficaz, especialmente com a validação da cidade e dos dias de passeio.

Uma sugestão: teste uma docstring mais detalhada em cada função, explicando os parâmetros e o retorno? Isso ajuda na legibilidade e manutenção do código.

Estes conteúdos podem abrir em inglês e se preferir ler em português, recomendo que utilize o tradutor automático do navegador.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe no fórum.

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