1
resposta

Calculando pedágio

motorista = {
    "nome": "",
    "distancia_percorrida": 0.0,
    "valor_pedagio": 0.0
}

def ler_nome():
    motorista['nome'] = validar_nome(input("Informe o nome do motorista: "))

def validar_nome(nome):
    if nome.strip() == "":
        print("Nome inválido. Definindo nome como 'Desconhecido'.")
        return "Desconhecido"
    return nome.strip()

def ler_distancia():
    motorista['distancia_percorrida'] = validar_distancia(input("Informe a distância percorrida (em km): "))

def validar_distancia(distancia):
    try:
        distancia = float(distancia)
        if distancia < 0:
            print("Distância não pode ser negativa. Definindo como 0.")
            return 0.0
        return distancia
    except ValueError:
        print("Distância inválida. Definindo distância como 0.")
        return 0.0

def calcular_pedagio():
    if motorista['distancia_percorrida'] < 100.0:
        motorista['valor_pedagio'] = 10.0
    elif 100.0 <= motorista['distancia_percorrida'] <= 200.0:
        motorista['valor_pedagio'] = 20.0
    else:
        motorista['valor_pedagio'] = 30.0

def exibir_resultado():
    print(f"Motorista {motorista['nome']} deve pagar R$ {motorista['valor_pedagio']:.2f} de pedágio.")


ler_nome()
ler_distancia()
calcular_pedagio()
exibir_resultado()
1 resposta

Oi! Tudo bom?

Excelente, siga praticando com os desafios!

Você soube elaborar dicionários para organizar os dados do motorista de forma eficiente, aproveitou o tratamento de exceções com try except para validar entradas e entendeu como o uso de funções separadas é essencial para manter o código limpo e reutilizável.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre 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!