Created
February 24, 2016 23:47
-
-
Save z2s8/6af0c391a16cc136ee2d to your computer and use it in GitHub Desktop.
2013 majus emelt prog
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
from collections import namedtuple | |
from decimal import Decimal | |
def reszfeladat(n): # sorszam kiirasa | |
print('{}. feladat'.format(n)) | |
def kepviselo_ki(kepviselo): # kimenet formazas osszes tulajdonsagra | |
part = kepviselo.part if kepviselo.part != '-' else 'fuggetlen' | |
return '{} {} {} {}'.format(kepviselo.kerulet, kepviselo.v_nev, | |
kepviselo.u_nev, part) | |
reszfeladat(1) | |
Kepviselo = namedtuple('Kepviselo', 'kerulet, voksok, v_nev, u_nev, part') | |
kepviselok = [] # ^ kepviselo tipus | |
with open('szavazatok.txt') as be: | |
sorok = be.read().splitlines() # ujsor karakter nelkul | |
for sor in sorok: | |
mezok = sor.split(' ') | |
kepviselok.append(Kepviselo( | |
int(mezok[0]), int(mezok[1]), mezok[2], mezok[3], mezok[4])) | |
reszfeladat(2) | |
print('A helyhatosagi valasztason {} kepviselojelolt indult.' | |
.format(len(kepviselok))) | |
reszfeladat(3) | |
v_nev = input('Kerem a kepviselojelolt vezeteknevet! ') | |
u_nev = input('Kerem a kepviselojelolt utonevet! ') | |
voksok = -1 # senki? | |
for kepviselo in kepviselok: | |
if kepviselo.v_nev == v_nev and kepviselo.u_nev == u_nev: | |
voksok = kepviselo.voksok # megvan a kepviselo | |
if voksok == -1: # senki. | |
print('Ilyen nevu kepviselojelolt nem szerepel a nyilvantartasban!') | |
else: | |
print('A kepviselojelolt {} szavazatot kapott.'.format(voksok)) | |
reszfeladat(4) | |
lakosok = 12345 # szavazasra jogosultak | |
szavazok = 0 # akik szavaztak | |
for kepviselo in kepviselok: | |
szavazok += kepviselo.voksok | |
reszvetel = round(szavazok * 100 / Decimal(lakosok), 2) # Decimal -> pontossag | |
print('A valasztason {} allampolgar, a jogosultak {}%-a vett reszt.' | |
.format(szavazok, reszvetel)) | |
reszfeladat(5) | |
print('A partokra leadott szavazatok aranya:') | |
partok = {} | |
for kepviselo in kepviselok: | |
partok[kepviselo.part] = partok.get(kepviselo.part, 0) + kepviselo.voksok | |
# ^ alapertelmezett ertek | |
for part, voksok in partok.items(): | |
partnev = 'Fuggetlen jeloltek' | |
if part == 'ZEP': | |
partnev = 'Zoldsegevok Partja' | |
elif part == 'TISZ': | |
partnev = 'Tejivok Szovetsege' | |
elif part == 'HEP': | |
partnev = 'Husevok Partja' # this is SPARTAAA | |
elif part == 'GYEP': | |
partnev = 'Gyumolcsevok Partja' | |
partresz = round(voksok * 100 / Decimal(szavazok), 2) | |
print('{} = {}%'.format(partnev, partresz)) | |
reszfeladat(6) | |
legnepszerubbek = [kepviselok[0]] # eddig.. | |
for kepviselo in kepviselok: | |
if kepviselo.voksok > legnepszerubbek[0].voksok: | |
legnepszerubbek = [kepviselo] | |
elif kepviselo.voksok == legnepszerubbek[0].voksok: | |
legnepszerubbek.append(kepviselo) | |
print('A legtobb szavazatot kapott jelolt(ek):') | |
for kepviselo in legnepszerubbek: # '-' -> 'fuggetlen' | |
part = kepviselo.part if kepviselo.part != '-' else 'fuggetlen' | |
print('{} {} {}'.format(kepviselo.v_nev, kepviselo.u_nev, part)) | |
reszfeladat(7) | |
gyoztesek = {} | |
for kepviselo in kepviselok: | |
eddigi_gyoztes = gyoztesek.get(kepviselo.kerulet, Kepviselo(0, 0, 0, 0, -1)) | |
# legnepszerutlenebb kepviselo ^ | |
if kepviselo.voksok > eddigi_gyoztes.voksok: | |
gyoztesek[kepviselo.kerulet] = kepviselo | |
with open('kepviselok.txt', 'w') as ki: | |
for kepviselo in gyoztesek.values(): | |
print(kepviselo_ki(kepviselo), file=ki) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment