1
resposta

Desafio: hora da prática

1
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

5
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

6

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

7

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

8

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

9

1. Inicialização dos contadores de votos

votos_c1 = 0
votos_c2 = 0
votos_c3 = 0
votos_c4 = 0
votos_nulos = 0
votos_brancos = 0

total_colaboradores = 20

print("=== ELEIÇÃO PARA A GERÊNCIA ===")
print("Opções de voto:")
print("1 - Candidato(a) 1 | 2 - Candidato(a) 2 | 3 - Candidato(a) 3 | 4 - Candidato(a) 4")
print("5 - Voto Nulo | 6 - Voto em Branco\n")

2. Laço de repetição para coletar os 20 votos

for i in range(1, total_colaboradores + 1):
voto = int(input(f"Colaborador {i:02d}, digite o seu voto: "))

# Estrutura condicional para computar o voto na variável correta
if voto == 1:
    votos_c1 += 1
elif voto == 2:
    votos_c2 += 1
elif voto == 3:
    votos_c3 += 1
elif voto == 4:
    votos_c4 += 1
elif voto == 5:
    votos_nulos += 1
elif voto == 6:
    votos_brancos += 1
else:
    print(" Opção inválida! Voto computado automaticamente como NULO.")
    votos_nulos += 1

3. Cálculo das porcentagens de nulos e brancos

porcentagem_nulos = (votos_nulos / total_colaboradores) * 100
porcentagem_brancos = (votos_brancos / total_colaboradores) * 100

4. Lógica para determinar quem venceu a eleição

Mapeamos os totais para os respectivos nomes/números usando um dicionário temporário

resultado_candidatos = {
"Candidato(a) 1": votos_c1,
"Candidato(a) 2": votos_c2,
"Candidato(a) 3": votos_c3,
"Candidato(a) 4": votos_c4
}

max() avalia qual chave possui o maior valor associado

vencedor = max(resultado_candidatos, key=resultado_candidatos.get)

5. Exibição do relatório final da votação

print("\n" + "="*15 + " RESULTADO DA ELEIÇÃO " + "="*15)
print(f"Candidato(a) 1: {votos_c1} voto(s)")
print(f"Candidato(a) 2: {votos_c2} voto(s)")
print(f"Candidato(a) 3: {votos_c3} voto(s)")
print(f"Candidato(a) 4: {votos_c4} voto(s)")
print("-" * 52)
print(f"Votos Nulos : {votos_nulos} ({porcentagem_nulos:.2f}%)")
print(f"Votos em Branco: {votos_brancos} ({porcentagem_brancos:.2f}%)")
print("-" * 52)

Caso o maior número de votos seja 0 (empate completo sem nenhum voto em candidatos)

if resultado_candidatos[vencedor] == 0:
print("Nenhum candidato recebeu votos válidos. Eleição sem vencedor.")
else:
print(f" Vencedor(a): {vencedor} com {resultado_candidatos[vencedor]} voto(s)!")
print("=" * 52)

1 resposta

Oii Lucineia, tudo bem?

Obrigada por compartilhar seu avanço aqui no fórum, vai ajudar muito outros alunos que chegarem nesse desafio!

Sua solução está bem estruturada e vai além do básico pedido. O uso do dicionário resultado_candidatos combinado com max(..., key=resultado_candidatos.get) é uma abordagem elegante para encontrar o vencedor sem precisar de uma cadeia enorme de if/elif. O tratamento do voto inválido (redirecionando para nulo com mensagem) e o caso de empate total também mostram que você pensou nos casos extremos, o que é ótimo hábito em programação.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade