Első megoldott érettségi feladatom Pythonban

A feladat választókerületek, szavazatok, jelöltek és azok párjainak kezelésével kapcsolatos.

class Valasztokerulet(object):
    def __init__(self,filesor):
        sorlista=[]
        sorlista=filesor.split(' ');
        self.valasztokeruletszam=int(sorlista[0])
        self.szavazat=int(sorlista[1])
        self.kepviselo=sorlista[2]+" "+sorlista[3]
        self.part=sorlista[4]

    def str(self):
        return self.valasztokerulet+" "+str(self.szavazat)+" "+self.kepviselo+" "+self.part
        
    def kiir(self):
        print( self.valasztokerulet+" "+str(self.szavazat)+" "+self.kepviselo+" "+self.part)

#1. feladat
file=open("szavazatok.txt","r")
szavazatok=[]
for sor in file:
    valasztokerulet=Valasztokerulet(sor.strip())
    szavazatok.append(valasztokerulet)
file.close()
print("2. feladat")
print("A helyhatósági választáson "+str(len(szavazatok))+" képviselőjelölt indult.")
print("3. feladat")
bekepviselo=input("Adja meg a képviselő nevét:")
talalat=0
for valasztokerulet in szavazatok:
    if (valasztokerulet.kepviselo==bekepviselo):
        talalat=1
        print(bekepviselo+" "+str(valasztokerulet.szavazat)+" szavazatot kapott")
if (talalat==0):
    print("Ilyen nevű képviselő nem szerepel a listában")
print("4. feladat")
szavazatszam=0
for valasztokerulet in szavazatok:
    szavazatszam+=valasztokerulet.szavazat
reszveteliarany=(szavazatszam/12345)*100
print("A választáson "+str(szavazatszam)+" állampolgár, a jogosultak "+str(round(reszveteliarany,2))+"%-a vett részt")
print("5. feladat")
partszavazatok={}
for valasztokerulet in szavazatok:
    if valasztokerulet.part in partszavazatok:
        partszavazatok[valasztokerulet.part]+=valasztokerulet.szavazat
    else:
        partszavazatok[valasztokerulet.part]=valasztokerulet.szavazat
for part in partszavazatok:
    if (part=="GYEP"):
        print("Gyümölcsevők pártja="+str(round((partszavazatok[part]/12345)*100,2))+"%")
    elif (part=="HEP"):
        print("Húsevők pártja="+str(round((partszavazatok[part]/12345)*100,2))+"%")
    elif (part=="TISZ"):
        print("Tejivók Szövetsége="+str(round((partszavazatok[part]/12345)*100,2))+"%")
    elif (part=="ZEP"):
        print("Zöldségevők pártja="+str(round((partszavazatok[part]/12345)*100,2))+"%")
    else:
        print("Független jelöltek="+str(round((partszavazatok[part]/12345)*100,2))+"%")
print("6. feladat")
maxszavazat=0
for valasztokerulet in szavazatok:
    if (valasztokerulet.szavazat>maxszavazat):
        maxszavazat=valasztokerulet.szavazat
print("A legtöbb szavazatot kapot kéviselő(ők):")
for valasztokerulet in szavazatok:
    if (valasztokerulet.szavazat==maxszavazat):
        if (valasztokerulet.part=="-"):
            print(valasztokerulet.kepviselo+" független képviselő")
        else:
            print(valasztokerulet.kepviselo+" "+valasztokerulet.part+" képviselője")
print("7. feladat")
nyertesek={}
for valasztokerulet in szavazatok:
    if (valasztokerulet.valasztokeruletszam in nyertesek):
        if (valasztokerulet.szavazat>nyertesek[valasztokerulet.valasztokeruletszam][0]):
            nyertesek[valasztokerulet.valasztokeruletszam][0]=valasztokerulet.szavazat
            nyertesek[valasztokerulet.valasztokeruletszam][1]=valasztokerulet.kepviselo
            nyertesek[valasztokerulet.valasztokeruletszam][2]=valasztokerulet.part
    else:
        nyertes=[]
        nyertes.append(valasztokerulet.szavazat)
        nyertes.append(valasztokerulet.kepviselo)
        nyertes.append(valasztokerulet.part)
        nyertesek[valasztokerulet.valasztokeruletszam]=nyertes
irasfajl=open("kepviselok.txt","w")

for keruletszam in sorted(nyertesek):
    if (nyertesek[keruletszam][2]=="-"):
         irasfajl.write(str(keruletszam)+" "+str(nyertesek[keruletszam][0])+" "+nyertesek[keruletszam][1]+" független")
         irasfajl.write("\n")      
    else:
        irasfajl.write(str(keruletszam)+" "+str(nyertesek[keruletszam][0])+" "+nyertesek[keruletszam][1]+" "+nyertesek[keruletszam][2])
        irasfajl.write("\n")
irasfajl.close()
print("Adatok kepviselok.txt fájlba kiírva...")

Új hozzászólás

Full HTML

  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.

Filtered HTML

  • A webcímek és email címek automatikusan linkekké alakulnak.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.

HTML filter + Picasa

  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • A webcímek és email címek automatikusan linkekké alakulnak.

Plain text

  • A HTML jelölők használata nem megengedett.
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
8 + 0 =
A fenti művelet eredményét kell beírni. Például 1+3 esetén 4-et.