Created
February 24, 2016 23:47
-
-
Save z2s8/6af0c391a16cc136ee2d to your computer and use it in GitHub Desktop.
Revisions
-
z2s8 created this gist
Feb 24, 2016 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,93 @@ 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)