🚀 8. évfolyam – Fejlesztő
🐍 Szöveges programozás Pythonban
A Python könnyen olvasható, mégis sokoldalú programozási nyelv. Használják webalkalmazások, játékok, automatizált rendszerek, robotok, adatelemző és mesterségesintelligencia-megoldások készítésére is. Ebben a témakörben a tanulók a blokkprogramozás után megismerik a szöveges programkód írásának alapjait.
A példák Python 3 nyelven készültek. A feladatok Thonnyban vagy más Python 3 környezetben is futtathatók.
🎯 A témakör céljai
A tanuló legyen képes:
- egyszerű Python-programot létrehozni, menteni és futtatni;
- megérteni és módosítani rövid programkódokat;
- adatokat kiírni és a felhasználótól bekérni;
- változókat és alapvető adattípusokat használni;
- számításokat és típusátalakítást végezni;
- feltételekkel döntési helyzeteket programozni;
foréswhileciklussal ismétléseket létrehozni;- szövegeket és listákat feldolgozni;
- saját függvényeket készíteni;
- egyszerű szövegfájlokat olvasni és írni;
- egy összetettebb programot megtervezni, tesztelni és bemutatni.
🧠 Előzetes tudás
- algoritmus és utasítássorozat;
- változó, feltétel és ciklus;
- esemény, bemenet és kimenet;
- program indítása, tesztelése és hibajavítása.
📚 Tananyag
1. Ismerkedés a Pythonnal
Mit tanulunk?
- a fejlesztői környezet részei;
- program létrehozása, mentése és futtatása;
- a
print()utasítás; - szövegek és számok kiírása;
- megjegyzések használata;
- a szintaktikai hiba fogalma.
Első programunk
print("Helló, világ!")
print("Python-programozást tanulok.")
A print() utasítás a zárójelben megadott értéket megjeleníti a képernyőn. A szöveget idézőjelek közé írjuk.
print("Az eredmény:", 3 + 4)
A # jellel kezdődő megjegyzést a Python nem hajtja végre. A megjegyzés segít megérteni a programot.
# Ez a program köszön a felhasználónak.
print("Üdv a Python világában!")
Fontos szabályok
- A Python megkülönbözteti a kis- és nagybetűket:
printhelyes,Printhibás. - A zárójeleket és az idézőjeleket párban kell használni.
- A program utasításait általában fentről lefelé hajtja végre.
- A fájlokat beszédes néven,
.pykiterjesztéssel mentjük.
Gyakorlófeladatok
- Írasd ki a nevedet és az osztályodat két külön sorba!
- Készíts háromsoros üdvözlőkártyát!
- Írasd ki a
12 + 8,12 - 8és12 * 8eredményét! - Egészítsd ki a programot legalább két magyarázó megjegyzéssel!
Mini projekt
👤 Digitális bemutatkozás: készíts programot, amely címmel, rendezett sorokkal és legalább egy számítással mutat be téged vagy egy kitalált szereplőt!
2. Változók és adattípusok
A változó névvel ellátott tárolóhely. Értéke a program működése közben megváltozhat.
nev = "Anna"
eletkor = 14
magassag = 1.62
tanulo = True
print(nev)
print(eletkor)
Alapvető adattípusok
| Adattípus | Python-név | Példa |
|---|---|---|
| szöveg | str | "Python" |
| egész szám | int | 14 |
| tört szám | float | 3.5 |
| logikai érték | bool | True, False |
Az = értékadó operátor. A jobb oldali értéket a bal oldali változóba helyezi.
pontszam = 10
pontszam = pontszam + 5
print(pontszam) # 15
Változónevek szabályai
- betűvel vagy aláhúzással kezdődjenek;
- ne tartalmazzanak szóközt;
- ne legyenek Python-kulcsszavak;
- legyenek rövidek, de beszédesek;
- ékezet nélküli nevekkel a kód könnyebben hordozható.
Gyakorlófeladatok
- Tárold változókban egy könyv címét, oldalszámát és árát, majd írasd ki őket!
- Hozz létre
pontszamváltozót, növeld 10-zel, majd csökkentsd 3-mal! - Cseréld fel két változó értékét egy harmadik változó segítségével!
- Vizsgáld meg a változók típusát a
type()függvénnyel!
Mini projekt
🪪 Digitális adatlap: a program tárolja és rendezett formában jelenítse meg egy kitalált játékos nevét, szintjét, pontszámát és aktív állapotát!
3. Adatbevitel és számítások
Az input() függvény megállítja a programot, és megvárja a felhasználó válaszát. Az eredmény mindig szövegként érkezik.
nev = input("Mi a neved? ")
print("Szia,", nev + "!")
Számolás előtt a szöveget számmá kell alakítani.
eletkor = int(input("Hány éves vagy? "))
print("Jövőre", eletkor + 1, "éves leszel.")
Matematikai műveletek
| Művelet | Jel | Példa |
| összeadás | + | 5 + 2 |
| kivonás | - | 5 - 2 |
| szorzás | * | 5 * 2 |
| osztás | / | 5 / 2 |
| egész osztás | // | 5 // 2 |
| maradék | % | 5 % 2 |
| hatványozás | ** | 5 ** 2 |
szelesseg = float(input("A téglalap szélessége: "))
magassag = float(input("A téglalap magassága: "))
terulet = szelesseg * magassag
kerulet = 2 * (szelesseg + magassag)
print("Terület:", terulet)
print("Kerület:", kerulet)
Gyakorlófeladatok
- Kérj be két számot, majd jelenítsd meg az összegüket és különbségüket!
- Számítsd ki egy négyzet kerületét és területét!
- Válts át perceket órára és percre az
//és%segítségével! - Számítsd ki három jegy átlagát, majd kerekítsd két tizedesre a
round()függvénnyel!
Mini projekt
🧮 Egyszerű számológép: kérjen be két számot, és jelenítse meg a négy alapművelet eredményét. Gondoskodj az áttekinthető kiírásról!
4. Feltételek és döntések
A feltételes szerkezet segítségével a program az adatoktól függően különböző utasításokat hajthat végre.
homerseklet = float(input("Hány °C van? "))
if homerseklet > 25:
print("Meleg van.")
elif homerseklet >= 15:
print("Kellemes az idő.")
else:
print("Hűvös van.")
Az if, elif és else sor végén kettőspont áll. A hozzájuk tartozó utasításokat beljebb kell kezdeni. Ezt behúzásnak nevezzük.
Összehasonlító és logikai operátorok
| Jel | Jelentés |
== | egyenlő |
!= | nem egyenlő |
<, > | kisebb, nagyobb |
<=, >= | kisebb vagy egyenlő, nagyobb vagy egyenlő |
and | mindkét feltétel igaz |
or | legalább az egyik igaz |
not | a logikai érték ellentéte |
eletkor = int(input("Életkor: "))
van_jegy = input("Van jegyed? (igen/nem) ") == "igen"
if eletkor >= 12 and van_jegy:
print("Beléphetsz.")
else:
print("A belépés feltételei nem teljesülnek.")
Gyakorlófeladatok
- Döntsd el egy számról, hogy pozitív, negatív vagy nulla!
- Döntsd el a
%művelettel, hogy egy egész szám páros vagy páratlan! - Készíts jegyértékelőt 1 és 5 közötti jegyekhez!
- Vizsgáld meg, hogy három megadott oldalhossz alkothat-e háromszöget!
Mini projekt
🎟️ Belépőjegy-kalkulátor: a program életkor és választott kategória alapján állapítsa meg a jegy árát! Legalább három különböző esetet kezeljen.
5. Véletlen számok
A véletlen értékekhez először be kell tölteni a random modult.
import random
dobas = random.randint(1, 6)
print("A dobás eredménye:", dobas)
A randint(a, b) mindkét határértéket beleértve választ egész számot. A choice() egy adatsor elemei közül választ.
import random
lehetosegek = ["kő", "papír", "olló"]
gep = random.choice(lehetosegek)
print("A gép választása:", gep)
Gyakorlófeladatok
- Szimulálj tízoldalú dobókockát!
- Sorsolj ki egy nevet egy listából!
- Készíts véletlen jelszót négy megadott szóból és egy számból!
- Kérj be egy tippet 1 és 10 között, majd hasonlítsd össze a kisorsolt számmal!
Mini projekt
🔢 Számkitaláló játék: a számítógép válasszon egy számot 1 és 100 között. A játékos tippje után jelezze, hogy a keresett szám kisebb vagy nagyobb. A teljes változat a következő ciklusos fejezetben készül el.
6. Ciklusok
A ciklus egy programrészt többször hajt végre.
for ciklus
A for ciklust akkor használjuk, ha ismert az ismétlések száma.
for szam in range(1, 6):
print(szam)
A range(1, 6) az 1, 2, 3, 4 és 5 értékeket adja. A felső határ nem tartozik bele.
osszeg = 0
for szam in range(1, 11):
osszeg = osszeg + szam
print("Az összeg:", osszeg)
while ciklus
A while ciklus addig ismétlődik, amíg a feltétele igaz.
jelszo = ""
while jelszo != "python8":
jelszo = input("Jelszó: ")
print("Helyes jelszó!")
Végtelen ciklus keletkezik, ha a feltétel mindig igaz marad. A break utasítás szükség esetén megszakítja a ciklust.
Teljes számkitaláló játék
import random
titkos = random.randint(1, 100)
tippek = 0
while True:
tipp = int(input("Tippelj 1 és 100 között: "))
tippek += 1
if tipp < titkos:
print("Nagyobb számra gondoltam.")
elif tipp > titkos:
print("Kisebb számra gondoltam.")
else:
print("Eltaláltad! Tippek száma:", tippek)
break
Gyakorlófeladatok
- Írasd ki 1-től 20-ig a páros számokat!
- Készíts szorzótáblát egy bekért számhoz!
- Kérj be öt jegyet, és számítsd ki az átlagukat!
- Kérj addig egész számokat, amíg a felhasználó nullát nem ír; végül jelenítsd meg az összegüket!
Mini projekt
🔐 Kódzár: a felhasználónak legfeljebb három próbálkozása legyen a helyes PIN-kód megadására. Siker esetén nyíljon ki a zár, különben a program tiltsa le a belépést!
7. Szövegek kezelése
A szöveg karakterek rendezett sorozata. A karakterek sorszámozása nullával kezdődik.
szo = "Python"
print(szo[0]) # P
print(szo[-1]) # n
print(len(szo)) # 6
print(szo[1:4]) # yth
Hasznos szövegműveletek
uzenet = " Python programozás "
print(uzenet.strip())
print(uzenet.lower())
print(uzenet.upper())
print(uzenet.replace("Python", "Szöveges"))
Az in operátorral megvizsgálhatjuk, hogy egy részlet megtalálható-e a szövegben.
mondat = input("Írj egy mondatot: ")
if "python" in mondat.lower():
print("A mondat tartalmazza a Python szót.")
Formázott szöveg
nev = "Dávid"
pont = 18
print(f"{nev} pontszáma: {pont}")
Gyakorlófeladatok
- Számold meg egy szó karaktereit!
- Írass ki egy bekért szót fordított sorrendben a
[::-1]segítségével! - Számold meg egy mondatban az
abetűk számát acount()metódussal! - Ellenőrizd a kis- és nagybetűket figyelmen kívül hagyva, hogy egy szó palindrom-e!
Mini projekt
🕵️ Egyszerű szövegelemző: kérjen be egy mondatot, majd mutassa meg a hosszát, a szavak számát, a magánhangzók számát és a mondat nagybetűs változatát!
8. Listák
A lista több összetartozó értéket tárol egyetlen változóban.
gyumolcsok = ["alma", "körte", "szilva"]
print(gyumolcsok[0])
gyumolcsok.append("barack")
gyumolcsok.remove("körte")
print(gyumolcsok)
Lista bejárása
pontok = [12, 18, 15, 20]
for pont in pontok:
print(pont)
print("Legnagyobb:", max(pontok))
print("Legkisebb:", min(pontok))
print("Átlag:", sum(pontok) / len(pontok))
Hasznos listaműveletek
append()– új elem hozzáadása;insert()– elem beszúrása megadott helyre;remove()– adott érték törlése;pop()– megadott helyen lévő elem kivétele;sort()– rendezés;len()– elemszám;in– elem keresése.
Gyakorlófeladatok
- Készíts listát öt kedvenc filmedből, majd írasd ki számozva!
- Kérj be egy új elemet, add a listához, majd rendezd a listát!
- Tárolj öt hőmérsékletet, és jelenítsd meg a minimumot, maximumot és átlagot!
- Keresd meg, szerepel-e egy bekért név a névsorban!
Mini projekt
🛒 Bevásárlólista-kezelő: a felhasználó tudjon elemet hozzáadni, törölni, keresni, rendezni és megjeleníteni. A program menüje ciklusban működjön!
9. Függvények
A függvény névvel ellátott, újra felhasználható programrész. Segítségével a hosszú programot kisebb, áttekinthető egységekre bonthatjuk.
def koszones(nev):
print(f"Szia, {nev}!")
koszones("Lili")
koszones("Márk")
A paraméter a függvény bemeneti adata. A return visszaadja a kiszámított eredményt.
def teglalap_terulet(a, b):
return a * b
eredmeny = teglalap_terulet(5, 3)
print("Terület:", eredmeny)
Miért használunk függvényeket?
- elkerüljük a kód ismétlését;
- áttekinthetőbb lesz a program;
- külön tesztelhetjük a programrészeket;
- ugyanazt a megoldást több adattal is használhatjuk.
Gyakorlófeladatok
- Készíts
negyzet(szam)függvényt! - Készíts függvényt, amely eldönti egy számról, hogy páros-e!
- Készíts Celsius–Fahrenheit átváltó függvényt!
- Írj függvényt, amely egy pontszámhoz szöveges értékelést ad vissza!
Mini projekt
🧮 Moduláris számológép: minden matematikai művelet külön függvényben legyen. A főprogram kérje be az adatokat, válassza ki a megfelelő függvényt, majd jelenítse meg az eredményt!
10. Fájlkezelési alapok
A változók adatai a program bezárásakor elvesznek. Fájlban az adatokat későbbi használatra is megőrizhetjük.
Írás szövegfájlba
with open("naplo.txt", "w", encoding="utf-8") as fajl:
fajl.write("Első naplóbejegyzés\n")
A w mód új fájlt hoz létre vagy felülírja a meglévőt. Az a mód a fájl végéhez fűzi az új tartalmat.
bejegyzes = input("Új bejegyzés: ")
with open("naplo.txt", "a", encoding="utf-8") as fajl:
fajl.write(bejegyzes + "\n")
Olvasás szövegfájlból
with open("naplo.txt", "r", encoding="utf-8") as fajl:
tartalom = fajl.read()
print(tartalom)
A with szerkezet a művelet végén biztonságosan bezárja a fájlt. Az encoding="utf-8" segít az ékezetes karakterek helyes kezelésében.
Gyakorlófeladatok
- Mentsd el a felhasználó nevét és kedvenc tantárgyát egy fájlba!
- Készíts programot, amely új ötleteket fűz egy
otletek.txtfájlhoz! - Olvasd be és számozd meg egy fájl sorait!
- Ments el öt pontszámot, majd beolvasás után számítsd ki az átlagukat!
Mini projekt
🏆 Pontszámlista: kérje be a játékos nevét és pontszámát, fűzze az eredményt egy fájlhoz, majd jelenítse meg az összes korábbi eredményt!
11. Játék készítése Pythonban
Egy játékprogram több korábban tanult elemet kapcsol össze: adatbevitelt, változókat, feltételeket, ciklusokat, listákat, véletlen számokat és függvényeket.
A játék tervezési kérdései
- Mi a játék célja?
- Hogyan irányít a játékos?
- Mik a szabályok?
- Hogyan változik a pontszám vagy az életek száma?
- Mikor győz vagy veszít a játékos?
- Hogyan lehet újraindítani vagy befejezni a játékot?
Minta – rövid kvízjáték
kerdesek = [
["Mennyi 6 * 7? ", "42"],
["Melyik nyelvet tanuljuk? ", "python"],
["Hány elemű a micro:bit LED-mátrixa? ", "25"]
]
pont = 0
for kerdes, helyes in kerdesek:
valasz = input(kerdes).strip().lower()
if valasz == helyes:
print("Helyes!")
pont += 1
else:
print("Nem helyes. A válasz:", helyes)
print(f"Eredmény: {pont}/{len(kerdesek)}")
Fejlesztési lehetőségek
- kérdések véletlenszerű sorrendje;
- három élet használata;
- nehézségi szintek;
- pontszám mentése fájlba;
- új játék lehetősége;
- időkorlát vagy bónuszpont.
Mini projekt
🎮 Választható játék: készíts kvízt, kő–papír–ollót, akasztófát, számkitalálót vagy egyszerű szöveges kalandot! A program tartalmazzon legalább egy ciklust, egy függvényt, egy listát és többágú döntést.
12. Saját Python-projekt
A témakör végén a tanulók önállóan vagy párban készítenek egy saját programot.
A projektkészítés lépései
- Ötlet: milyen problémát old meg vagy milyen élményt nyújt a program?
- Célcsoport: ki fogja használni?
- Követelmények: mit kell feltétlenül tudnia?
- Bemenet és kimenet: milyen adatokat kap és milyen eredményt ad?
- Algoritmus: készíts folyamatábrát vagy lépéslistát!
- Részfeladatok: bontsd kisebb egységekre a megoldást!
- Programozás: először a legfontosabb funkció készüljön el!
- Tesztelés: próbáld ki szokásos, szélsőséges és hibás adatokkal!
- Javítás: keresd meg a hiba okát, majd ellenőrizd újra!
- Bemutatás: ismertesd a célt, a működést és a tanulságokat!
Kötelező programozási elemek
A projekt tartalmazzon:
- legalább három változót;
- felhasználói adatbevitelt;
- legalább egy többágú feltételt;
- legalább egy ciklust;
- listát vagy szövegfeldolgozást;
- legalább egy saját függvényt;
- áttekinthető kiírást;
- megjegyzéseket a fontosabb programrészeknél.
Választható projektötletek
- ❓ tantárgyi kvíz;
- 🧠 memória- vagy szókincsfejlesztő játék;
- 🔐 jelszógenerátor és jelszóerősség-vizsgáló;
- 📊 osztályzatelemző;
- 💰 zsebpénz-nyilvántartó;
- 📚 könyv- vagy filmlista-kezelő;
- 🌡️ időjárási adatnapló mintaadatokkal;
- 🗺️ szöveges kalandjáték;
- 🏆 bajnokság-pontszámoló;
- 📝 egyszerű személyes napló.
Projektbemutató
A 3–5 perces bemutató térj ki:
- a program céljára;
- a célközönségre;
- a legfontosabb funkciókra;
- egy érdekes kódrészletre;
- egy megtalált és kijavított hibára;
- a továbbfejlesztés lehetőségeire.
🔧 Tesztelés és hibakeresés
A hiba a programozás természetes része. A hibakeresés célja nem csupán a hiba eltüntetése, hanem az ok megértése.
A hibák fő típusai
Szintaktikai hiba
A kód nem felel meg a Python nyelvtani szabályainak.
print("Szia!"
Futási hiba
A program elindul, de végrehajtás közben hibába ütközik, például nullával osztáskor vagy nem létező listaelem használatakor.
Logikai hiba
A program lefut, de rossz eredményt ad. Ezt gyakran a legnehezebb felismerni.
Hibakeresési stratégia
- Olvasd el pontosan a hibaüzenetet!
- Keresd meg a jelzett sort!
- Ellenőrizd a zárójeleket, idézőjeleket, kettőspontokat és behúzásokat!
- Írasd ki a változók köztes értékeit!
- Teszteld külön a kisebb programrészeket!
- Egyszerre csak egy dolgot változtass!
- Javítás után ismételd meg a tesztet!
Tesztesetek
Egy jó programot többféle adattal próbálunk ki:
- szokásos érték;
- legkisebb és legnagyobb megengedett érték;
- nulla;
- üres szöveg;
- hibás típusú vagy tartományon kívüli adat.
🛡️ Digitális biztonság és felelős programozás
- Ne kérj be szükségtelen személyes adatot!
- Jelszót ne jeleníts meg és ne tárolj védelem nélküli szövegfájlban!
- Más programját csak engedéllyel használd fel, és jelöld a forrást!
- Az internetről származó kódot előbb értsd meg, majd biztonságos környezetben teszteld!
- A program ne sértsen, ne tévesszen meg, és ne okozzon kárt másoknak!
- Mesterséges intelligencia segítsége esetén ellenőrizd, magyarázd meg és teszteld a kapott kódot!
✅ Értékelési javaslat
| Terület | Arány | Mit értékelünk? |
| Működés | 35% | teljesíti-e a program a követelményeket |
| Programozási megoldás | 25% | helyes változók, feltételek, ciklusok, listák és függvények |
| Áttekinthetőség | 15% | beszédes nevek, tagolás, megjegyzések |
| Tesztelés és hibajavítás | 15% | tesztesetek, hibák felismerése és javítása |
| Bemutatás és önállóság | 10% | érthető ismertetés, saját döntések indoklása |
Differenciálás
Támogatást igénylő tanulóknak
- részben elkészített kód;
- hiányzó sorok pótlása;
- vizuális algoritmus vagy folyamatábra;
- páros programozás;
- rövid, egyetlen új fogalomra épülő feladatok.
Gyorsabban haladó tanulóknak
- bemenetellenőrzés
try–excepthasználatával; - összetett, egymásba ágyazott adatszerkezetek;
- pontszámok rendezése és toplista;
- több fájl vagy modul használata;
- grafikus felület vagy Turtle-grafika önálló kiegészítésként.
🧪 Összefoglaló gyakorlati feladat
Tanulói eredménykezelő
Készíts programot, amely:
- bekéri a tanulók nevét és pontszámát;
- listában tárolja az adatokat;
- kiszámítja az átlagot;
- megkeresi a legjobb eredményt;
- szöveges értékelést ad a pontszámokhoz;
- lehetővé teszi a keresést név alapján;
- függvényekre bontva működik;
- igény szerint fájlba menti az eredményeket.
Továbbfejlesztési ötletek
- eredmények rendezése;
- osztályzat kiszámítása százalékból;
- toplista készítése;
- adatok visszaolvasása fájlból;
- hibás bemenet kezelése.










