Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Questão 9 exercício de funções

infelizmente não consegui ainda fazer sozinho esse exercício(estou me perdendo na sintaxe das funções), mas estava testando o código do instrutor e percebi que se colocar o nome da cidade todo minúsculo ou maiúsculo o código da um erro, tem que ser exatamente como está escrito no código que é por exemplo "Salvador" com a primeira letra maiúscula, tem como corrigir isso, lembro que no primeiro curso tive que faz um exercício em que eu colocava toda a entrada de dados em minúsculo, não importava como a pessoa digitava, mas nesse caso em que o código está assim só mudando o jeito em que é escrito os nomes das cidades, por exemplo "salvador" e no input colocar .lower() ?

dias = int(input("Quantas diárias? "))
cidade = input("Qual a cidade? [Salvador, Fortaleza, Natal ou Aracaju]: ")
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 

gastos = gasto_hotel(dias) + gasto_gasolina(cidade) + gasto_passeio(cidade, dias)
print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidade} saindo de Recife custaria {round(gastos, 2)} reais")
1 resposta
solução!

Oi Diego, tudo bem?

Para resolver o problema de sensibilidade a maiúsculas e minúsculas no nome das cidades, você pode converter a entrada do usuário para um formato padrão, como minúsculas, e fazer o mesmo com as comparações no código. Isso pode ser feito usando o método .lower() tanto na entrada quanto nas comparações. Vou mostrar como você pode ajustar o seu 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 

gastos = gasto_hotel(dias) + gasto_gasolina(cidade) + gasto_passeio(cidade, dias)
print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidade.capitalize()} saindo de Recife custaria {round(gastos, 2)} reais")

Aqui, eu adicionei .lower() ao input() para garantir que a entrada do usuário seja convertida para minúsculas. Também usei .capitalize() na hora de exibir o nome da cidade para garantir que a primeira letra seja maiúscula na saída, mantendo o formato desejado.

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!