Nagy ZH¶
Tartalom
Egész órás nagy ZH
A gyakorlat anyaga¶
Ezen a gyakorlaton nincs új tananyag, cserében gyakorló feladatokkal készülhetsz fel a nagy zárthelyire. A gyakorlatvezetők a gyakorlat teljes ideje alatt rendelkezésre állnak és válaszolnak a feladatokkal kapcsolatos kérdéseidre.
Feladatok¶
Szótárak (Dictionary)¶
1. feladat - Előfordulások számlálása
Írj egy függvényt szavak_gyakorisaga(szoveg) néven, amely egy szöveget kap paraméterként, és visszaad egy szótárat,
amelyben a kulcsok a szavak, az értékek pedig az előfordulásaik száma.
Példa:
1 2 3 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 | |
2. feladat - Szótár inverz (kulcs-érték csere)
Írj egy függvényt szotar_inverz(szotar) néven, amely egy szótár kulcs-érték párjait megfordítja.
Ha több kulcsnak ugyanaz az értéke, akkor az új szótárban az érték egy lista legyen a kulcsokkal.
Példa:
1 2 3 | |
Példamegoldás
1 2 3 4 5 6 7 8 | |
3. feladat - Készletek összefésülése és szűrése
Írj egy függvényt keszletek_osszevonasa(raktar1, raktar2, min_mennyiseg) néven, amely két raktár készletét vonja össze.
Mindkét szótárban a kulcsok terméknevek, az értékek pedig mennyiségek (egész számok).
A függvény:
- Hozzon létre egy új szótárt, amely tartalmazza az összes terméket mindkét raktárból.
- Ha egy termék mindkét raktárban van, az összege kerüljön az új szótárba.
- Csak azok a termékek kerüljenek bele, amelyeknek az összmennyisége eléri vagy meghaladja a
min_mennyisegértéket.
Példa:
1 2 3 4 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
4. feladat - Szavak csoportosítása és szűrése
Írj egy függvényt szavak_csoportositasa(szavak, min_hossz) néven, amely egy szavakat tartalmazó listát kap,
és visszaad egy szótárat, ahol a kulcsok az első betűk (kisbetűre alakítva), az értékek pedig az adott betűvel kezdődő szavak listái.
Azonban csak azok a szavak kerüljenek bele, amelyek hossza legalább min_hossz!
Példa:
1 2 3 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 | |
5. feladat - Sportolók átlageredményei
Adott egy szótár, amely sportolók neveit tárolja kulcsként, és minden sportolóhoz egy újabb szótár
tartozik a versenyek eredményeivel (lista) és a csapat nevével.
Írj egy függvényt legjobb_sportoló(sportolok) néven, amely:
- Kiszámolja minden sportoló átlageredményét
- Visszaad egy szótárat, ahol a kulcsok a sportolók nevei, az értékek pedig az átlageredményeik
- PLUSZ: Kiírja a képernyőre a legjobb átlageredménnyel rendelkező sportoló nevét és átlagát!
Példa:
1 2 3 4 5 6 7 8 9 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Fájlkezelés¶
6. feladat - Páros számok összege fájlból
Írj egy függvényt paros_szamok_osszege(fajlnev, hatarertek) néven, amely beolvas egy fájlt, amelyben soronként egy-egy
egész szám szerepel, és visszaadja azoknak a páros számoknak az összegét, amelyek nagyobbak a hatarertek értéknél!
Példa:
Fájl tartalma (szamok.txt):
1 2 3 4 5 6 | |
1 2 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 | |
7. feladat - Sorok számozása
Írj egy függvényt sorok_szamozasa(bemeneti_fajl, kimeneti_fajl) néven, amely beolvassa a bemeneti
fájl tartalmát, és kiírja a kimeneti fájlba úgy, hogy minden sor elé odaírja a sorszámát és egy kettőspontot!
Példa:
Bemeneti fájl (bemenet.txt):
1 2 3 | |
Kimeneti fájl (kimenet.txt):
1 2 3 | |
Példamegoldás
1 2 3 4 5 6 7 | |
8. feladat - CSV feldolgozás és számítások
Írj egy függvényt termekek_atlagara(fajlnev) néven, amely beolvas egy CSV-szerű fájlt,
amelyben soronként terméknév,darabszám,egységár formátumú adatok vannak.
A függvény számítsa ki minden termék teljes értékét (darabszám × egységár), és adja vissza az átlagos termékértéket!
Példa:
Fájl tartalma (termekek.txt):
1 2 3 | |
1 2 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
9. feladat - Szűrt szavak megfordítva fájlba
Írj egy függvényt szurt_szavak_fajlba(szoveg, fajlnev, min_hossz) néven, amely egy szöveget kap paraméterként,
és a szöveg szavait külön sorokba írja a megadott fájlba, de:
- Csak azokat a szavakat, amelyek legalább
min_hosszkarakteresek - Minden szót megfordítva (visszafelé) írjon ki
- Minden sor végére tegyen egy felkiáltójelet!
Példa:
1 2 | |
A gyumolcsok.txt tartalma:
1 2 3 4 | |
Megjegyzés: "kör" és "te" szavak 3 ill. 2 karakteresek, ezért nem kerültek be (min_hossz=4).
Példamegoldás
1 2 3 4 5 6 7 | |
Komplex feladatok¶
10. feladat - Termékadatok komplex feldolgozása
Ez egy összetett feladat, amely három függvényt igényel!
Írj egy programot, amely termékadatokat dolgoz fel. A program három függvényből áll:
1. termekek_beolvasasa(fajlnev) függvény:
- Beolvas egy fájlt, amelyben soronként
terméknév,ár,kategóriaformátumú adatok vannak - Visszaad egy szótárat, ahol a kulcsok a terméknevek, az értékek pedig szótárak
{"ar": int, "kategoria": str}formátumban
2. termekek_elemzese(termekek) függvény:
- Paraméterként egy szótárat vár (az előző függvény kimenetét)
- Visszaad egy új szótárat az alábbi szerkezettel:
"atlag_ar": az összes termék átlagára"legdragabb": a legdrágább termék neve"atlag_feletti": lista azokról a termékekről, amelyek drágábbak az átlagnál (csak a nevek)"kategoriak": szótár, ahol a kulcsok a kategóriák, az értékek pedig az adott kategória termékeinek átlagára
3. eredmenyek_mentese(fajlnev, eredmenyek) függvény:
- Paraméterként egy fájlnevet és az előző függvény által visszaadott szótárat várja
- Kiírja az eredményeket egy fájlba olvasható formában:
1 2 3 4 5 6
Átlagár: 1250.0 Legdrágább: laptop Átlag feletti termékek: laptop, telefon Kategória átlagok: - elektronika: 1500.0 - ruha: 800.0
Példa használat:
Bemeneti fájl (termekek.txt):
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 | |
Példamegoldás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | |
11. feladat - Könyvtári rendszer feldolgozás
Írj egy függvényt modern_konyvek_szerzokkel(fajlnev, evhatar) néven, amely:
- Beolvas egy fájlt, amelyben soronként
könyvcím;szerző;kiadási_évformátumú adatok vannak (pontosvesszővel elválasztva!) - Csak azokat a könyveket dolgozza fel, amelyek kiadási éve >=
evhatar - Visszaad egy szótárat, ahol a kulcsok a szerzők nevei, az értékek pedig az adott szerző modern könyveinek címei egy listában
Példa fájl (konyvek.txt):
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 | |
Megjegyzés: Tolkien 1954-es és 1937-es könyvei nem kerültek bele, mert nem érik el az 1996-os határt!
Példamegoldás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Tippek¶
Tippek a nagy ZH-hoz
- Mindig használd a
with open()konstrukciót fájlkezelésnél! - Ne felejtsd el az
encoding="utf-8"paramétert! - Használd az
rstrip()vagystrip()függvényt sortörések eltávolítására! - A szótár bejárásánál az
items()nagyon hasznos kulcs-érték párokhoz! - Komplex feladatoknál bontsd részfeladatokra a megoldást!
- Tesztelj minden részfeladatot külön, mielőtt továbbmész!
- Mindig olvasd el a Bíró reportját a konkrét hibákért!