1
resposta

[Sugestão] Condicionais if, elif e else: Fiz Assim - 10 Calculando Pedágio

def classificacao_estudantes():
    """
    Essa função classifica o valor do pedágio dado a distância percorrida.
    
    Input:
    - distancia (int): Distância em km.
    
    Output:
    - faixa_pedagio(str): Valor do pedágio R$10.00, R20.00  R$30.00 .
    """
    print('''
    |||||||||||||||||||||||||||||||||||||||||||
    |           COBRANÇA DE PEDÁGIO           |
    |||||||||||||||||||||||||||||||||||||||||||
    ''')

    try:
        distancia = int(input('Informe a distância percorrida (em km): '))

        # Classificação da distância
        if distancia >= 200:
            faixa_pedagio = "R$30.00"
        elif 200 < distancia > 100:  
            faixa_pedagio = "R$20.00"
        else:
            faixa_pedagio = "R$10.00"

        print(f'Você vai pagar {faixa_pedagio} de pedágio.')
    except ValueError:
        print('Erro: Insira um valor numérico válido.')

# Chamada da função
classificacao_estudantes()
1 resposta

Oi Shayne,

Sua solução está quase perfeita! 👍

A lógica geral está correta, mas há um pequeno problema na condição elif 200 < distancia > 100:.

Essa forma de comparação não funciona como esperado em Python. Ela será interpretada como (200 < distancia) and (distancia > 100), o que pode levar a resultados inesperados.

O correto seria usar elif 100 < distancia < 200:. Assim, você garante que a distância esteja dentro do intervalo desejado. 💪

Aqui está o trecho corrigido:

if distancia >= 200:
    faixa_pedagio = "R$30.00"
elif 100 < distancia < 200:
    faixa_pedagio = "R$20.00"
else:
    faixa_pedagio = "R$10.00"

Com essa pequena alteração, seu código funcionará corretamente para todas as faixas de distância. 💻

Para saber mais: Operadores de comparação em Python.

Continue praticando e explorando as possibilidades da linguagem! 🤔