Questão 09 Você recebeu o desafio de criar um código que calcule os gastos de uma viagem saindo de Recife para uma das quatro cidades a seguir:
Salvador
Fortaleza
Natal
Aracaju
Informações fornecidas: Diária do hotel: R$150 em todas as cidades.
Consumo de gasolina: 14 km/l.
Preço da gasolina: R$5,00 por litro.
Gastos com passeios e alimentação por dia:
Salvador: R$200
Fortaleza: R$400
Natal: R$250
Aracaju: R$300
Distâncias de Recife até as cidades (ida):
Salvador: 850 km
Fortaleza: 800 km
Natal: 300 km
Aracaju: 550 km
Objetivo: Criar três funções:
gasto_hotel: calcula os gastos com hotel.
gasto_gasolina: calcula os gastos com gasolina (considerando ida e volta).
gasto_passeio: calcula os gastos com passeios e alimentação.
Observação importante: Durante o estudo, percebi que o instrutor não abordou um ponto que considero essencial: Ao solicitar o nome da cidade ao usuário, ele pode digitar com letras minúsculas, maiúsculas ou misturadas, o que poderia causar erros nas comparações no código.
Para evitar esse tipo de problema e tornar o código mais robusto, é recomendável utilizar a função lower() para padronizar a entrada do usuário. Assim, independentemente de como o usuário digitar, o programa funcionará corretamente.
Meu código :
dias = int(input("Quantas diárias? "))
cidade = input("Qual a cidade? [Salvador, Fortaleza, Natal ou Aracaju]: ").lower()
distancias = [850, 800, 300, 550]
passeio = [200, 400, 250, 300]
km_l = 14
gasolina = 5
def gasto_hotel(dias):
return 150 * dias
def gasto_gasolina(cidade):
if cidade == "salvador":
return (2 * distancias[0] * gasolina) / km_l
elif cidade == "fortaleza":
return (2 * distancias[1] * gasolina) / km_l
elif cidade == "natal":
return (2 * distancias[2] * gasolina) / km_l
elif cidade == "aracaju":
return (2 * distancias[3] * gasolina) / km_l
def gasto_passeio(cidade, dias):
if cidade == "salvador":
return passeio[0] * dias
elif cidade == "fortaleza":
return passeio[1] * dias
elif cidade == "natal":
return passeio[2] * dias
elif cidade == "aracaju":
return passeio[3] * dias
...
Conclusão: Ao utilizar .lower() na entrada da cidade, o código se torna mais amigável e evita possíveis falhas causadas por variação de maiúsculas e minúsculas digitadas pelo usuário.