Forrásfájlok:
A forrásfájlok - eltérően a feladatlap szövegétől - ékezetes betűk nélküli néven érhetőek el !
A feladat megoldására ajánlott időkeret:
40 perc
előző oldal | random oldal | következő oldal |
class KutyaNév():
def __init__(self, sor):
sor = sor.strip().split(';')
self.id = int(sor[0]); self.nev = sor[1]
class KutyaFajta():
def __init__(self, sor):
sor = sor.strip().split(';')
self.id = int(sor[0]); self.nev = sor[1]; self.eredeti = sor[2]
class Kutya():
def __init__(self, sor):
sor = sor.strip().split(';')
self.id = int(sor[0]); self.fajta_id = int(sor[1]); self.nev_id = int(sor[2])
self.kor = int(sor[3]); self.vizsgalat = sor[4]
with open("KutyaNevek.csv", "r", encoding='utf-8') as be:
be.readline()
kutyanevek = [KutyaNév(sor) for sor in be]
with open("KutyaFajtak.csv", "r", encoding='utf-8') as be:
be.readline()
kutyafajtak = [KutyaFajta(sor) for sor in be]
with open("Kutyak.csv", "r", encoding='utf-8') as be:
be.readline()
kutyak = [Kutya(sor) for sor in be]
# print(*[e.__dict__ for e in kutyak], sep='
')
def fajta(fajta_id):
for egy in kutyafajtak:
if egy.id==fajta_id: return egy.nev
def nev(nev_id):
for egy in kutyanevek:
if egy.id==nev_id: return egy.nev
print("3. feladat: Kutyanevek száma:", len(kutyanevek))
print("6. feladat: Kutyák átlagéletkora:", round(sum([e.kor for e in kutyak])/len(kutyak), 2))
print("7. feladat: A legidősebb kutya neve és fajtája:", end=' ')
öregkutya = max(kutyak, key= lambda x: x.kor)
print(nev(öregkutya.nev_id), fajta(öregkutya.fajta_id), sep=', ')
print("8. feladat: Január 10.-én a vizsgál kutya fajták:")
fajták = [fajta(egy.fajta_id) for egy in kutyak if egy.vizsgalat=='2018.01.10']
for egy in set(fajták):
print(f" {egy}: {fajták.count(egy)} kutya")
print("9. feladat: Legjobban leterhelt nap:", end=' ')
dátumok = [egy.vizsgalat for egy in kutyak]
megszámlált = [[egy, dátumok.count(egy)] for egy in set(dátumok)]
print(f"{max(megszámlált, key=lambda x: x[1])[0]}.: {max(megszámlált, key=lambda x: x[1])[1]} kutya")
print("10. feladat: nevstatisztika.txt")
nevek = [nev(egy.nev_id) for egy in kutyak]
megszámlált = sorted([[egy, nevek.count(egy)] for egy in set(nevek) if nevek.count(egy) > 1], key= lambda x: x[1], reverse=1)
with open("nevstatisztika.txt", "w", encoding='utf-8') as ki:
for egy in megszámlált:
print(f"{egy[0]};{egy[1]}", file=ki)