Last active
March 1, 2023 02:09
-
-
Save cganterh/299be46dca4f45f5cada98f074d35659 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
while True: | |
cont = 0 | |
suma_irrazabal = 0 | |
suma_ignacio = 0 | |
suma_raul = 0 | |
suma_carolina = 0 | |
suma_isolina = 0 | |
suma_nicolas = 0 | |
suma_blancos = 0 | |
suma_nulos = 0 | |
while True: | |
print '\n\nVOTE POR SU CANDIDATO\n' | |
print '1.- Sebatian Irrazabal (candidato partido de los futbolistas)' | |
print '2.- Ignacio Vivanco (candidato partido de los tiernos)' | |
print '3.- Raul Sanchez (candidato del partido de los brigidos)' | |
print '4.- Carolina Herrera (candidata partido feminista)' | |
print '5.- Isolina Palma (candidata partido feminista)' | |
print '6.- Nicolas smocker (candidato partido de los tiernos)' | |
print '0.- Voto en blanco' | |
print '-1.- Voto en nulo' | |
print '-2.- Ver votaciones' | |
votacion = raw_input('\nIngrese su votacion: ') | |
print '' | |
if votacion in ['-1', '0', '1', '2', '3', '4', '5', '6']: | |
cont += 1 | |
if votacion == '-2': | |
if cont == 0: | |
print 'No votó nadie.' | |
break | |
print 'la suma de los votos por el candidato Irrazabal son:', \ | |
suma_irrazabal, ',', 100*suma_irrazabal/cont, '%' | |
print 'la suma de los votos por el candidato ignacio son:', \ | |
suma_ignacio, ',', 100*suma_ignacio/cont, '%' | |
print 'la suma de los votos por el candidato raul son:', \ | |
suma_raul, ',', 100*suma_raul/cont, '%' | |
print 'la suma de los votos por el candidato carolina son:', \ | |
suma_carolina, ',', 100*suma_carolina/cont, '%' | |
print 'la suma de los votos por el candidato isolina son:', \ | |
suma_isolina, ',', 100*suma_isolina/cont, '%' | |
print 'la suma de los votos por el candidato nicolas son:', \ | |
suma_nicolas, ',', 100*suma_nicolas/cont, '%' | |
print 'la suma de los votos nulos:', \ | |
suma_nulos, ',', 100*suma_nulos/cont, '%' | |
print 'la suma de los votos blancos:', \ | |
suma_blancos, ',', 100*suma_blancos/cont, '%' | |
print '' | |
sumas = [suma_irrazabal, suma_ignacio, suma_raul, suma_carolina, | |
suma_isolina, suma_nicolas] | |
ganador = sumas.index(max(sumas)) | |
if sumas.count(max(sumas)) != 1: | |
print 'No hay ganador' | |
elif ganador == 0: | |
print 'El ganador es ', 'irrazabal' | |
elif ganador == 1: | |
print 'El ganador es ', 'ignacio' | |
elif ganador == 2: | |
print 'El ganador es ', 'raul' | |
elif ganador == 3: | |
print 'El ganador es ', 'carolina' | |
elif ganador == 4: | |
print 'El ganador es ', 'isolina' | |
elif ganador == 5: | |
print 'El ganador es ', 'nicolas' | |
print '' | |
print 'Porcentajes por partido:' | |
print 'Futbolistas', 100*suma_irrazabal/cont, '%' | |
print 'Tiernos', 100*(suma_ignacio + suma_nicolas)/cont, '%' | |
print 'Brígidos', 100*suma_raul/cont, '%' | |
print 'Feministas', 100*(suma_carolina + suma_isolina)/cont, '%' | |
print '\n\n' | |
break | |
elif votacion == '-1': | |
suma_nulos += 1 | |
elif votacion == '0': | |
suma_blancos += 1 | |
elif votacion == '1': | |
suma_irrazabal += 1 | |
elif votacion == '2': | |
suma_ignacio += 1 | |
elif votacion == '3': | |
suma_raul += 1 | |
elif votacion == '4': | |
suma_carolina += 1 | |
elif votacion == '5': | |
suma_isolina += 1 | |
elif votacion == '6': | |
suma_nicolas += 1 | |
else: | |
print 'Opción inválida!' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# -*- coding: utf-8 -*- | |
nombres = { | |
-1: 'Nulo', | |
0: 'Blanco', | |
1: 'Sebatian Irrazabal', | |
2: 'Ignacio Vivanco', | |
3: 'Raul Sanchez', | |
4: 'Carolina Herrera', | |
5: 'Isolina Palma', | |
6: 'Nicolas Smocker', | |
} | |
partidos = { | |
'Futbolistas': [1], | |
'Tiernos': [2, 6], | |
'Brigidos': [3], | |
'Feministas': [4, 5], | |
} | |
def main(): | |
try: | |
while True: | |
contadores, votos_totales = votaciones() | |
print_resultados(contadores, votos_totales) | |
except KeyboardInterrupt: | |
exit() | |
def votaciones(): | |
contadores = {n: 0 for n in nombres} | |
votos_totales = 0 | |
while True: | |
print('\n\nVOTE POR SU CANDIDATO\n') | |
print_candidatos() | |
voto = int( | |
input('\nIngrese su voto: ') | |
) | |
if voto in contadores: | |
votos_totales += 1 | |
contadores[voto] += 1 | |
elif voto == -2: | |
break | |
else: | |
print('Opción inválida!') | |
return contadores, votos_totales | |
def print_candidatos(): | |
for n in sorted(nombres.keys()): | |
print( | |
'{0}.- {1} ({2})'.format( | |
n, | |
nombres[n], | |
next( | |
filter(lambda p: n in partidos[p], partidos), '' | |
) | |
) | |
) | |
def print_resultados(contadores, votos_totales): | |
print('\nResultados:') | |
for n in nombres: | |
print( | |
'Votos para {0}: {1}, {2}%'.format( | |
nombres[n], contadores[n], 100*contadores[n]/votos_totales) | |
) | |
del contadores[-1] | |
del contadores[0] | |
cand, votos = zip( | |
*contadores.items() | |
) | |
mayor_cantidad_votos = max(votos) | |
ganador = cand[votos.index(mayor_cantidad_votos)] | |
if votos.count(mayor_cantidad_votos) != 1: | |
print('\nNo hay ganador') | |
else: | |
print( | |
'\nEl ganador es {}!'.format(nombres[ganador]) | |
) | |
print('\nPorcentajes por partido:') | |
for partido in partidos: | |
total_partido = sum(contadores[c] for c in partidos[partido]) | |
print( | |
'{}: {}%'.format(partido, 100*total_partido/votos_totales) | |
) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment