NAT 2020 · Digitális Kultúra · Középszint

Python érettségi feladatok

Öt komplex, valós életből vett feladat a középszintű digitális kultúra érettségi vizsgára való felkészüléshez. Minden feladathoz mellékletfájl és részletes, kommentált Python megoldás tartozik.

Szint: Középszint
Nyelv: Python 3
Feladatok: 5 db
Ajánlott idő: 5 × 20–25 perc
Érintett témakörök
fájlkezelés listák szótár (dict) string műveletek függvények ciklus & feltétel try / except típuskonverzió rendezés formázott kimenet
1
🌡️ Hőmérséklet-napló elemzése
Fájlkezelés · Statisztika · Függvények
~18 pont

Egy automatikus meteorológiai állomás naponta rögzíti a mért hőmérsékleti adatokat egy szöveges fájlba. A fájl minden sora egy napot tartalmaz a következő formátumban:

2024.06.01;22.4
📄homerseklet.txt

30 nap adata (2024. június), pontosvesszővel elválasztva: dátum és napi maximum hőmérséklet (°C).

  1. Olvasd be a fájlt! Kezeld a FileNotFoundError kivételt.
  2. Írj függvényt, amely kiszámítja és visszaadja a minimum, maximum és átlag hőmérsékletet.
  3. Számold meg, hány napon haladta meg a hőmérséklet a 30 °C-ot (kánikula)! Listázd ki ezeket a napokat.
  4. Az eredményeket írd ki egy eredmeny_01.txt fájlba, olvasható formában.
with open("homerseklet.txt", "r", encoding="utf-8") as f: …
float(ertek)  |  min() / max() / sum()  |  lista szeletelés
# try/except FileNotFoundError
2
📊 Szógyakoriság-elemző
Szótár · String műveletek · Rendezés
~16 pont

Egy iskolai újság szerkesztői szeretnék megtudni, melyek a leggyakrabban előforduló szavak egy cikkben. A szöveget egy szoveg.txt fájl tartalmazza.

📄szoveg.txt

Egy folyamatos magyar szöveg írásjelekkel, nagybetűkkel vegyesen.

  1. Olvasd be a szöveget! Távolítsd el az írásjeleket, és hozz létre kisbetűs szólistát.
  2. Szótár segítségével számold meg az egyes szavak előfordulásait! A 3 betűnél rövidebb szavakat hagyd figyelmen kívül.
  3. Rendezd a szótárat érték szerint csökkenő sorrendbe, és írd ki az 5 leggyakoribb szót és darabszámukat.
  4. Írd ki az összes egyedi szó számát és a feldolgozott szavak számát is.
str.lower()  |  str.split()  |  str.replace()
szótár feltöltése ciklusban  |  sorted(d.items(), key=lambda x: x[1], reverse=True)
lista szeletelés [:5]
3
🏃 Futóverseny eredménylista
Időkonverzió · Rendezés · Formázott kimenet
~20 pont

Az iskolai futóverseny időeredményeit egy verseny.txt fájlban tárolják mm:ss formátumban. A rendszernek el kell készítenie a ranglistát.

📄verseny.txt

Soronként: versenyző neve és időeredménye pontosvesszővel elválasztva (pl. Kovács Péter;12:34).

  1. Olvass be minden versenyzőt a fájlból! Az időt alakítsd másodpercbe (segédfüggvénnyel).
  2. Rendezd a versenyzőket idő szerint növekvő sorrendbe (legjobb időeredmény elöl).
  3. Írd ki a rangsort helyezésszámmal együtt! Az első 3 helyezésnél jelenjen meg az érem neve (Arany/Ezüst/Bronz).
  4. Számítsd ki és írd ki az átlagidőt, valamint a legjobb és leggyengébb idő különbségét.
  5. Mentsd el az eredményt fájlba (eredmeny_03.txt).
másodpercek = percek × 60 + másodpercek  |  str.split(":")
sorted(lista, key=lambda x: x[2])  |  enumerate(rangsor, start=1)
f-string formázás: {ido:">8"}
4
🔐 Caesar-titkosító program
ord / chr · Függvények · Felhasználói bemenet
~22 pont

Julius Caesar óta az egyik legismertebb titkosítási módszer az ábécé betűinek eltolása. A programnak képesnek kell lennie szöveget titkosítani és visszafejteni, illetve egy mellékelt fájl tartalmát megfejteni.

📄titkos.txt

ROT13 (eltolás = 13) módszerrel titkosított angol mondatok. Az írásjeleket és szóközöket a titkosítás nem érinti.

  1. Írj függvényt, amely egy karaktert eltol az ábécéban! Nagy- és kisbetűkre egyaránt működjön; az ábécé végén körkörösen folytassa (pl. 'z'+3='c').
  2. Írj függvényt, amely teljes szöveget titkosít vagy visszafejt, karakterenként alkalmazva az előző függvényt.
  3. A program kérdezze meg a felhasználótól, hogy titkosítani vagy visszafejteni szeretne-e, és mekkora az eltolás.
  4. Harmadik opcióként fejtse meg a titkos.txt tartalmát (eltolás = 13), és mentse el az eredményt.
ord(c)  |  chr(szam)  |  c.isalpha()  |  c.isupper()
körkörösen: (ord(c) - alap + eltolas) % 26 + alap
input()  |  int() konverzió + hibakezelés
5
🛒 Bevásárlólista kalkulátor
Szótár · Kategorizálás · Kedvezmény-logika
~20 pont

Egy okos bevásárló alkalmazás fájlból olvassa be a vásárlási listát, összesíti a kiadásokat kategóriánként, megtalálja a legtöbbe kerülő terméket, és kedvezményt számít, ha a végösszeg meghalad egy határértéket.

📄bevasarlas.txt

Soronként: terméknév;kategória;mennyiség;egységár (pl. tej;élelmiszer;3;289).

  1. Olvasd be a fájlt! Tárold a termékeket listában, konvertáld a mennyiséget és az árat megfelelő típusra.
  2. Számítsd ki az összes tétel részösszegét (mennyiség × egységár), majd a teljes végösszeget.
  3. Szótár segítségével összesítsd a kiadásokat kategóriánként, és írd ki csökkenő sorrendben.
  4. Keresd meg a legtöbbe kerülő terméket (részösszeg alapján).
  5. Ha a végösszeg meghaladja az 5000 Ft-ot, alkalmazz 10% kedvezményt, és írd ki a megtakarítás összegét. Az eredményt mentsd fájlba.
float()  /  int() konverzió  |  szótár kategóriánkénti összesítés
sorted(d.items(), ..., reverse=True)  |  százalékszámítás
f-string: {ertek:,.0f} → ezres elválasztó, nincs tizedesjegy