Skip to content

Instantly share code, notes, and snippets.

@cganterh
Last active March 1, 2023 02:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cganterh/299be46dca4f45f5cada98f074d35659 to your computer and use it in GitHub Desktop.
Save cganterh/299be46dca4f45f5cada98f074d35659 to your computer and use it in GitHub Desktop.
#!/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!'
#!/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