Recentemente ocorreram mudanças na legislação de trânsito referente ao acúmulo de pontos na CNH. A partir de agora, há uma gradação no aumento desta pontuação. Ou seja, dependendo da gravidade da infração, o condutor pode perder o documento com 20, 30 ou 40 pontos acumulados dentro de 12 meses.
Se houver duas ou mais infrações gravíssimas dentro desse período, a CNH é suspensa com 20 pontos. Se houver uma infração gravíssima, a suspensão ocorre com 30 pontos. No entanto, ele só chegará aos 40 pontos dentro de 12 meses, caso não ocorra nenhuma infração gravíssima.
O Detran solicitou à equipe de TI um programa em PYTHON para controlar a aplicação dessas novas regras. Dessa forma, o programa deve solicitar o número da CNH do condutor, a quantidade de pontos registrados e a quantidade de infrações gravíssimas. O programa deve solicitar as informações até que o usuário indique que não há mais registros (0,5). Em seguida, o programa deverá gerar as seguintes informações:
a) A quantidade de condutores que tiveram a CNH suspensa com 30 pontos; (0,5)
b) O percentual de condutores que tiveram a CNH suspensa com 20 pontos; (0,5)
c) A média da quantidade de pontos registrados. (0,5)
Soluções para a tarefa
Resposta:
infracao30 = []
infracao20 = []
lista_registro = []
while True:
cnh = int(input('\nDigite sua CNH (Digite -1 pra finalizar): '))
if cnh == -1:
break
registros = int(input('Digite a quantidade de pontos: '))
lista_registro.append(registros)
if registros >= 40:
print('Voce ta preso!')
continue
infracoes = int(input('Digite quantas infrações foram registradas: '))
if infracoes >= 2:
infracao20.append(infracoes)
print('Sua carteira foi suspensa com 20 pontos.')
elif infracoes == 1:
infracao30.append(infracoes)
print('Sua carteira foi suspensa com 30 pontos.')
elif infracoes == 0:
print('Voce não possui infrações!')
media = 0
if len(lista_registro) != 0:
media = sum(lista_registro) / len(lista_registro)
print(f'Quantidade de condutores que tiveram a CNH suspensa com 30 pontos = {len(infracao30)}')
print(f'Quantidade de condutores que tiveram a CNH suspensa com 20 pontos = {len(infracao20)}')
print(f'Media de quantidade de pontos = {media}')
Explicação: