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

[Sugestão] 04_Estrutura de Repetição - Atividade 8 e 9

## 8) Vamos entender a distribuição de idades de pensionistas de uma empresa de previdência. Escreva um programa que leia as idades de uma quantidade não informada de clientes e mostre a distribuição em intervalos de [0-25], [26-50], [51-75] e [76-100]. Encerre a entrada de dados com um número negativo.
clienteidade = {
    'nome': [],
    'idade': []
}

while True:
    try:
        nome = str(input('Digite o nome do cliente: '))
        idade = int(input('Digite a idade do cliente: '))
        
        # Se a idade for negativa, encerra o programa
        if idade < 0:
            print('Idade negativa detectada. Encerrando o programa...')
            break

        # Adiciona o cliente à lista
        clienteidade['nome'].append(nome)
        clienteidade['idade'].append(idade)
        print('Cliente cadastrado com sucesso!')
        
    except ValueError:
        print('Valor inválido! Por favor, digite um número para a idade.')
    except Exception as e:
        print(f'Erro inesperado: {e}')

# Organiza os clientes em faixas etárias
faixa_0_25 = []
faixa_26_50 = []
faixa_51_75 = []
faixa_acima_75 = []

# Categoriza os clientes com base na idade
for i in range(len(clienteidade['idade'])):
    idade = clienteidade['idade'][i]
    nome = clienteidade['nome'][i]
    if idade <= 25:
        faixa_0_25.append((nome, idade))
    elif idade <= 50:
        faixa_26_50.append((nome, idade))
    elif idade <= 75:
        faixa_51_75.append((nome, idade))
    else:
        faixa_acima_75.append((nome, idade))

# Exibe os clientes agrupados por faixas etárias
if clienteidade['nome']:
    print('\nClientes agrupados por faixas etárias:\n')

    # Exibe clientes na faixa de 0 a 25 anos
    if faixa_0_25:
        print('0 até 25 anos:')
        for nome, idade in faixa_0_25:
            print(f'Nome: {nome} | Idade: {idade}')

    # Exibe clientes na faixa de 26 a 50 anos
    if faixa_26_50:
        print('\n26 até 50 anos:')
        for nome, idade in faixa_26_50:
            print(f'Nome: {nome} | Idade: {idade}')
    
    # Exibe clientes na faixa de 51 a 75 anos
    if faixa_51_75:
        print('\n51 até 75 anos:')
        for nome, idade in faixa_51_75:
            print(f'Nome: {nome} | Idade: {idade}')
    
    # Exibe clientes acima de 75 anos
    if faixa_acima_75:
        print('\nMaiores de 75 anos:')
        for nome, idade in faixa_acima_75:
            print(f'Nome: {nome} | Idade: {idade}')
    
print('\nFim do programa!')
print('Pressione qualquer tecla para sair...')
input()
## 9) Em uma eleição para gerência em uma empresa com 20 pessoas colaboradoras, existem quatro candidatos(as). Escreva um programa que calcule o(a) vencedor(a) da eleição. A votação ocorreu da seguinte maneira:
numcolabs = 20
colabscandidatos = 4
nomescandidatos = ['A', 'B', 'C', 'D', 'N']
votos = []

apuracao = {
    'A': 0,
    'B': 0,
    'C': 0,
    'D': 0,
    'N': 0  # Nulo
}

while len(votos) < numcolabs:
    voto = input('Digite o voto (A, B, C, D ou N para nulo): ').upper()  # Converte para maiúsculas
    if voto in apuracao:
        votos.append(voto)
        apuracao[voto] += 1
        print('Voto computado com sucesso!')
    else:
        print('Voto inválido! Digite A, B, C, D ou N.')

# Exibir o status final da apuração após todos os votos
total_votos = sum(apuracao.values())
print(f'\nVotação finalizada. Resultado da apuração:\n')
print(f'Votos computados: {total_votos} de {numcolabs}')
print(f'Votos em A: {apuracao["A"]} ({(apuracao["A"]/total_votos)*100:.2f}%)')
print(f'Votos em B: {apuracao["B"]} ({(apuracao["B"]/total_votos)*100:.2f}%)')
print(f'Votos em C: {apuracao["C"]} ({(apuracao["C"]/total_votos)*100:.2f}%)')
print(f'Votos em D: {apuracao["D"]} ({(apuracao["D"]/total_votos)*100:.2f}%)')
print(f'Votos nulos: {apuracao["N"]} ({(apuracao["N"]/total_votos)*100:.2f}%)')

# Verificar o vencedor
vencedor = max(apuracao, key=apuracao.get)

# Verificar se há empate
candidatos_com_max_votos = [candidato for candidato, votos in apuracao.items() if votos == apuracao[vencedor]]

if len(candidatos_com_max_votos) > 1:
    print(f'\nHouve um empate entre os candidatos {", ".join(candidatos_com_max_votos)}. A eleição será repetida.')
else:
    print(f'O vencedor é: {vencedor}')
1 resposta
solução!

Oii, Marinaldo! Tudo bom?

Parabéns por estar explorando estruturas de repetição em Python para se desenvolver!

Continue praticando e se houver dúvidas ou queira compartilhar suas resoluções, sinta-se à vontade.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!