ABARONIN

OktatásKódpanelekPython

Python kódpanelek

Tizenöt kódváz három készletben. Mindegyik egy visszatérő vizsgafeladat-mintát old meg: felismered a feladatszövegből, bemásolod a vázat, és kicseréled benne a jelölt részeket. Nem puska – a vizsgán is használhatod.

Programozási alapok · 10. évfolyam · 15 panel · frissítve 2026. 09. 24.

Kereshető panelválasztó · ez az oldal egyben tartalmazza mind a(z) 15 panelt, nyomtatható.

Hogyan használd ezeket a paneleket?
  1. Olvasd el a feladatot, és keresd meg, melyik panel kell hozzá. A „Mikor kell ez” sor azokat a fordulatokat sorolja, amelyekből a feladatszövegben felismered.
  2. Másold be a kódvázat, és csak azután kezdj gondolkodni. Az üres képernyő a legdrágább perc a vizsgán.
  3. Cseréld ki a sárgával jelölt helyeket. A «KAPCSOSBAN» álló részek a te feladatod adataira vonatkoznak – az „Illesztési pontok” mondja meg, mit írj a helyükre.
  4. Futtasd le azonnal, még mielőtt továbbmennél, és nézd át a „Tipikus hibák” oszlopot.
  5. Fűzd össze a paneleket. Egy tipikus feladat 2–4 panelből áll össze: beolvasás → döntés vagy ciklus → formázott kiírás.

Fontos: a «…» jelek nem részei a Python kódnak. Ha bemásolod a vázat, ezeket cseréld le – ha bennhagyod, szintaktikai hibát kapsz.

A · Konzolos be- és kimenet, számítás

Szinte minden vizsgafeladat ezzel kezdődik: beolvasunk, átalakítunk, számolunk, formázva kiírunk.

A1Biztonságos számbeolvasás

Mikor kell ez?

a feladat azt mondja, hogy „kérj be", „olvasd be", „a felhasználó megadja" — és a beolvasott adattal számolni kell.

«VALTOZO» = int(input("«KIIRANDO SZOVEG»: "))

«TIZEDES_VALTOZO» = float(input("«KIIRANDO SZOVEG»: "))

Illesztési pontok

  • «VALTOZO» – Beszédes név, ékezet nélkül: darab, kor, perc
  • «KIIRANDO SZOVEG» – Pontosan az, ami a feladat mintájában a kettőspont előtt áll
  • int / float – int() egész számhoz (darab, életkor, év), float() ha tizedes is lehet (ár, hossz, hőmérséklet átlaga)

Tipikus hibák

  • Elmarad a konverzió. Az input() mindig szöveget ad. Két beolvasott érték összeadása ilyenkor összefűzi a szövegeket ("3" + "4" → "34"), a szorzásuk TypeError. Szöveg és egész szám szorzata viszont hibaüzenet nélkül ismétel: "3" * 4 → "3333".
  • int() ott, ahol tizedes jön. A 7.5 beírásakor azonnal ValueError. Ha a feladat árat vagy mértéket kér, float() kell.
  • A prompt szövege nem egyezik a mintával. A kimeneti formátum is pontozott — másold a feladatból.

A2Formázott kiírás f-stringgel

Mikor kell ez?

a minta kimenetben tizedesjegyek vannak („4.30", „26970.00"), vagy a számok oszlopba rendezve állnak egymás alatt.

print(f"«SZOVEG»: {«VALTOZO»:.«N»f} «MERTEKEGYSEG»")

print(f"{«VALTOZO»:«SZELESSEG»}", end="")

Illesztési pontok

  • :.«N»f – Tizedesjegyek száma: :.2f két tizedes, :.1f egy tizedes
  • :«SZELESSEG» – Mezőszélesség oszlopokhoz: :4 négy karakter helyet foglal. A számot jobbra, a szöveget balra igazítja; szöveget jobbra a :>4 igazít.
  • end="" – Csak akkor kell, ha a következő kiírás ugyanabba a sorba menjen

Tipikus hibák

  • A tizedes elválasztó pont, nem vessző. A Python az angolszász alakot adja: 26970.00, nem 26 970,00. Ez nem hiba — ha a feladat magyaros alakot kér, a .replace(".", ",") trükk kell.
  • Elmarad az f betű a nyitó idézőjel előtt. Ilyenkor a kapcsos zárójel szó szerint megjelenik a kimenetben.
  • A kettőspont után szóköz. A {ar: .2f} egy plusz szóközt tesz a szám elé.

A3Egész osztás és maradék

Mikor kell ez?

„hány teljes doboz", „hány maradék", „hány óra és hány perc", „osztható-e", „páros-e". Bármi, ahol a maradék önmagában is érdekes.

egesz = «OSSZES» // «EGYSEG»
marad = «OSSZES» % «EGYSEG»

print("Teljes:", egesz)
print("Marad:", marad)

Illesztési pontok

  • dobozolás → termékek száma // egy dobozba férő darab
  • idő átváltás → összes perc // 60 az óra, % 60 a perc
  • oszthatóság → szam % «OSZTO» == 0 — ez igaz/hamis értéket ad, feltételbe való
  • páros-páratlan → szam % 2 == 0 páros, == 1 páratlan

Tipikus hibák

  • / a // helyett. A sima osztás tizedes számot ad: 7.833 doboz nem értelmes.
  • round()-dal próbálják. A kerekítés felfelé is mehet — a nyolcadik doboz viszont nincs tele.
  • Negatív számnál lefelé kerekít, nem nulla felé. A -7 // 2 eredménye -4, nem -3 — a // mindig a kisebb egész felé kerekít. Vizsgafeladatban ritka, de jó tudni.
  • int(x / y) a // helyett. Pozitív számoknál ugyanazt adja (int(47 / 6) → 7), negatívnál viszont nem: az int() nulla felé csonkol, ezért int(-7 / 2) → -3, a -7 // 2 pedig -4. Egész osztáshoz mindig a // kell.

Ha valaki kérdezi

Létezik math.floor(x / y) is, ami ugyanúgy lefelé kerekít, mint a // — de csak import math után működik. A math modul egy későbbi témakör. Két apró különbség: ha valamelyik szám tizedes, a // tizedes eredményt ad (7.5 // 2 → 3.0), a math.floor() pedig mindig egészet (3); nagyon nagy egész számoknál pedig a math.floor(x / y) pontatlanná válhat, a // nem. Vizsgán a // a helyes választás.

A4Több adat bekérése és átlagolása

Mikor kell ez?

a feladat néhány (2–4) konkrét adatot kér be, és összesít belőlük. Ha sok adat van vagy a darabszám változó, a C2 panel kell helyette.

a = int(input("«ELSO»: "))
b = int(input("«MASODIK»: "))
c = int(input("«HARMADIK»: "))

osszeg = a + b + c
print(f"Osszeg: {osszeg}")
print(f"Atlag: {osszeg / «DARABSZAM»:.2f}")

Illesztési pontok

  • «DARABSZAM» ugyanannyi legyen, ahány adatot bekértél — ha négy adat van, / 4.
  • Ha a feladat kerület vagy terület jellegű, az osszeg helyére a megfelelő képlet kerül. Zárójelre figyelj: 2 * (hossz + szeles).

Tipikus hibák

  • Egész osztás az átlagnál. A // eldobja a tizedeseket: 2 lesz 2.80 helyett.
  • Hiányzó zárójel a képletben. A 2 * hossz + szeles nem a kerület — a szorzás előbb hajtódik végre.

B · Elágazások

Minden olyan feladathoz, ahol a program dönt valamiről.

B1Kétágú döntés

Mikor kell ez?

pontosan két lehetőség van — „ha … akkor …, egyébként …". Például kedvezményes vagy teljes ár, megfelelt vagy nem felelt meg.

if «FELTETEL»:
    «EREDMENY» = «ERTEK_HA_IGAZ»
else:
    «EREDMENY» = «ERTEK_HA_HAMIS»

print(f"«SZOVEG»: {«EREDMENY»}")

Illesztési pontok

  • «FELTETEL»: relációs kifejezés — kor < 18, pont >= 60, jelszo == "titok123".
  • Az eredményt egy változóba tedd, és az elágazás után írd ki egyszer. Így a kimeneti szöveg csak egy helyen szerepel, és nem tud elírás lenni benne.

Tipikus hibák

  • Egy egyenlőségjel kettő helyett. Az = értékadás, a == összehasonlítás.
  • Hiányzó kettőspont az if és az else sor végéről.
  • Behúzási hiba: a print bekerül az else ágba, így az if ágban nem ír ki semmit.

B2Sávos besorolás

Mikor kell ez?

táblázatos díjszabás, pontszám-kategória, életkori sávok — kettőnél több kimenetel, és a sávok nem fedik egymást.

if «ERTEK» <= «ELSO_HATAR»:
    «EREDMENY» = «ELSO_ERTEK»
elif «ERTEK» <= «MASODIK_HATAR»:
    «EREDMENY» = «MASODIK_ERTEK»
elif «ERTEK» <= «HARMADIK_HATAR»:
    «EREDMENY» = «HARMADIK_ERTEK»
else:
    «EREDMENY» = «MARADEK_ERTEK»

print(f"«SZOVEG»: {«EREDMENY»}")

Illesztési pontok

  • A sávokat növekvő sorrendben írd — a legkisebbel kezdve. Az elif miatt az alsó határt nem kell külön kiírni: ha idáig eljutott a vezérlés, az előző feltételek már hamisak voltak.
  • Ha csökkenő sorrendben haladsz, akkor >= jelet használj végig — de ne keverd a kettőt.
  • Ahány sáv, annyi ág: három határérték négy sávot jelent (az else a legfelső).

Tipikus hibák

  • Külön if-ek elif helyett. Ekkor több feltétel is igaz lesz, és a legutolsó felülírja az előzőt — rossz díjat kapsz. Ez a leggyakoribb hiba ebben a feladattípusban.
  • Rossz sávsorrend. Ha a legnagyobb sávval kezdesz növekvő relációval, minden bemenet az első ágba esik.
  • A határérték elcsúszik. Ha a feladat szerint a 60 perc még az alsó sávba tartozik, akkor <= 60 kell, nem < 60. Mindig próbáld ki a határokat.

B3Összetett feltétel

Mikor kell ez?

a feladatban „és", „vagy", „mindkettő", „legalább az egyik", „nem" szerepel — két vagy több dolognak egyszerre kell teljesülnie.

if «FELTETEL_1» and «FELTETEL_2»:
    print("«MINDKETTO_IGAZ»")
else:
    print("«EGYEBKENT»")

# tarolhato logikai valtozoban is:
«ALLITAS» = («FELTETEL_1» and «FELTETEL_2») or «FELTETEL_3»

Illesztési pontok

  • „és", „mindkettő", „egyszerre" → and — minden résznek igaznak kell lennie
  • „vagy", „legalább az egyik" → or — elég, ha az egyik igaz
  • „nem", „kivéve" → not — megfordítja az igazságértéket
  • „…-tól …-ig" → két feltétel and-del: ertek >= 10 and ertek <= 20

Tipikus hibák

  • Hiányzó zárójel and és or keverésénél. Az and erősebben köt, mint az or — a kód sokszor véletlenül helyes lesz, de olvashatatlan. Tedd ki a zárójelet.
  • A változónevet nem ismétlik meg. A 10 < ertek and ertek < 20 jó, de a ertek > 10 and < 20 szintaktikai hiba.
  • & és | jelet írnak. Pythonban a szavas alak kell: and, or, not.

B4Határérték: < vagy <=

Mikor kell ez?

nem önálló feladattípus, hanem ellenőrzés. Minden elágazásos feladatnál futtasd le rá a határértéket, mielőtt beadod.

# A feladat: "a 18 ev alattiak diakjegyet kapnak"
# Kerdes: a pontosan 18 eves melyik agba esik?

if kor < 18:     # 18 eves -> teljes ar   (ez a helyes)
if kor <= 18:    # 18 eves -> diakjegy    (ez mar hibas)

Illesztési pontok

  • „… alatt", „kevesebb mint" → < — a határérték NEM tartozik bele
  • „legfeljebb", „nem több mint", „…-ig" → <= — a határérték beletartozik
  • „felett", „több mint" → >
  • „legalább", „nem kevesebb mint" → >=

Tipikus hibák

  • Csak a „középső" értékeket próbálják ki. A 45 perc mindkét változattal jó eredményt ad — a hiba csak pontosan 60 percnél derül ki.
  • A sávok átfednek vagy lyuk marad köztük. Ha az egyik sáv <= 60, a következő > 60 legyen, ne >= 60.

C · Ciklusok

Innentől jönnek a hosszabb vizsgafeladatok — a C4–C6 panel a „négy alapművelet", ami szinte minden feladatsorban szerepel.

C1Beolvasás végjelig

Mikor kell ez?

a feladatban ott van, hogy „amíg", „addig", „amíg 0-t nem ír be", „amíg ki nem lép". Nem tudod előre, hány adat jön.

osszeg = 0
db = 0

«ERTEK» = int(input("«KERDES»: "))
while «ERTEK» != «VEGJEL»:
    osszeg += «ERTEK»
    db += 1
    «ERTEK» = int(input("«KERDES»: "))

print("Darab:", db)
print("Osszeg:", osszeg)

Illesztési pontok

  • A beolvasás kétszer szerepel — egyszer a ciklus előtt, egyszer a ciklus végén. Ez nem elírás: így nem kerül bele a végjel az összesítésbe. (Pythonban nincs hátultesztelő ciklus, ez a bevett kiváltása.)
  • «VEGJEL»: amit a feladat mond — általában 0, néha egy üres sor vagy egy szó.
  • Ha nem összegezni, hanem csak számolni kell, hagyd el az osszeg sorokat.

Tipikus hibák

  • A végjelet is beleszámolják. Ha a növelés a ciklus előtti beolvasás után áll, eggyel több lesz a darabszám.
  • A beolvasás csak egyszer szerepel (a cikluson kívül). Ekkor az érték soha nem változik → végtelen ciklus. Ctrl+C állítja meg.
  • Hiányzó léptetés általában. Ha „lefagy" a program, mindig a ciklusban változó értéket keresd.

C2Fix darabszámú beolvasás

Mikor kell ez?

a feladat megmondja a darabszámot („hét napra", „öt jegyet"), vagy előbb bekéri („hány adatot rögzítesz?"). Előre tudod, hány kör lesz.

n = int(input("«HANY DARAB»: "))
osszeg = 0

for i in range(n):
    «ERTEK» = int(input(f"{i+1}. «MEGNEVEZES»: "))
    osszeg += «ERTEK»

print(f"Atlag: {osszeg / n:.2f}")

Illesztési pontok

  • Ha a darabszám fix (pl. hét nap), akkor range(7) és a végén / 7 — nem kell bekérni.
  • {i+1} azért kell a kiírásban, mert a range nullától számol, a felhasználó viszont egytől.
  • Az átlaghoz mindig / kell, nem //.

Tipikus hibák

  • range(1, n) a range(n) helyett. Így eggyel kevesebb adatot olvas be.
  • Az osszeg = 0 a cikluson belülre kerül. Ilyenkor minden körben nullázódik, és a végén csak az utolsó érték marad benne.
  • A kiírás is a cikluson belül marad. Minden adat után kiírja a részeredményt.

C3Tartomány bejárása

Mikor kell ez?

„1-től 100-ig", „minden páros szám", „visszaszámlálás" — nem beolvasott adatokkal dolgozol, hanem egy számtartománnyal.

for i in range(«KEZDET», «VEG_PLUSZ_1»):
    «MUVELET»

# lepeskozzel:
for i in range(«KEZDET», «VEG_PLUSZ_1», «LEPES»):
    «MUVELET»

Illesztési pontok

  • 1-től 100-ig → range(1, 101)
  • 0-tól 9-ig → range(10)
  • páros számok 1–100 között → range(2, 101, 2)
  • visszaszámlálás 10-től 1-ig → range(10, 0, -1)

Tipikus hibák

  • A felső határ eggyel kevesebb. A range() második száma nem tartozik bele. 100-ig 101-et kell írni.
  • Visszaszámlálásnál elmarad a negatív lépés. A range(10, 0) üres — nincs benne egy szám sem.
  • A lépésközt összekeverik a felső határral. A harmadik paraméter a lépés, nem a darabszám.

C4Összegzés és megszámlálás

Mikor kell ez?

„mennyi az összeg", „hány darab olyan…", „hány esetben". A feltételes változat a db növelését teszi az if-be.

n = int(input("«HANY DARAB»: "))
osszeg = 0
db = 0

for i in range(n):
    ertek = int(input(f"{i+1}. «MEGNEVEZES»: "))
    osszeg += ertek
    if «FELTETEL»:
        db += 1

print("Osszeg:", osszeg)
print("«SZOVEG»:", db, "db")

Illesztési pontok

  • Mindkét kezdőérték 0, és a cikluson kívül áll. Ez a leggyakrabban kifelejtett két sor.
  • «FELTETEL»: amit a feladat szűr — ertek >= 10, ertek < 0, ertek % 2 == 0.
  • Ha csak összegezni kell, hagyd el a db részt; ha csak számolni, az osszeg részt.
  • Feltételes összegzéshez az osszeg += ertek sort is tedd az if-be.

Tipikus hibák

  • Hiányzó kezdőérték. NameError, mert a cikluson belül hivatkozol olyan változóra, ami még nem létezik.
  • A kezdőérték a cikluson belül van. Minden körben nullázódik.
  • A db += 1 az if-en kívül marad. Ilyenkor az összes adatot megszámolja, nem csak a megfelelőket.

C5Szélsőérték keresése

Mikor kell ez?

„a legnagyobb", „a legkisebb", „a legmelegebb nap", „a legdrágább tétel".

n = int(input("«HANY DARAB»: "))
legnagyobb = 0

for i in range(n):
    ertek = int(input(f"{i+1}. «MEGNEVEZES»: "))
    if i == 0:
        legnagyobb = ertek
    elif ertek > legnagyobb:
        legnagyobb = ertek

print("«SZOVEG»:", legnagyobb)

Illesztési pontok

  • A kezdőérték az első beolvasott adat — ezt intézi az if i == 0 ág. Ez akkor is helyes, ha minden adat negatív.
  • Legkisebbhez fordítsd meg a relációt: elif ertek < legkisebb:.
  • Ha mindkettő kell, két változót vigyél, és az if i == 0 ágban mindkettőt állítsd be.

Tipikus hibák

  • A kezdőérték 0. Csupa negatív adatnál 0-t ír ki — pedig olyan érték nem is volt az adatok között. Ez a panel legfontosabb pontja.
  • A kezdőérték egy „elég nagy" szám (pl. 9999) a legkisebbhez. Működhet, de a feladat adataitól függ — az első elem mindig biztonságos.
  • Az elif helyett if. Az első körben kétszer fut le az értékadás — nem hibás, de felesleges és félrevezető.

C6Eldöntés logikai változóval

Mikor kell ez?

„van-e olyan…", „szerepel-e", „mindegyik olyan-e". A válasz egyetlen igen vagy nem — nem szám.

n = int(input("«HANY DARAB»: "))
van = False

for i in range(n):
    ertek = int(input(f"{i+1}. «MEGNEVEZES»: "))
    if «FELTETEL»:
        van = True

if van:
    print("«IGEN SZOVEG»")
else:
    print("«NEM SZOVEG»")

Illesztési pontok

  • A van = False kezdőérték a cikluson kívül áll: alapból feltételezzük, hogy nincs ilyen elem.
  • Sosem állítjuk vissza False-ra a cikluson belül — egyetlen találat elég ahhoz, hogy a válasz „igen" legyen.
  • „Mindegyik olyan-e" kérdésnél fordítva: mind = True kezdőérték, és az if-ben a tagadott feltételnél állítod False-ra.

Tipikus hibák

  • Az if-hez else ág is kerül a cikluson belül, ami visszaállítja False-ra. Ekkor csak az utolsó adat számít.
  • A kiírás a cikluson belül marad. Minden adat után kiír egy választ.
  • Idézőjelbe teszik: a "False" szöveg, nem logikai érték — és minden szöveg igaznak számít feltételben.

C7Egymásba ágyazott ciklus

Mikor kell ez?

táblázat, szorzótábla, mintázat — bármi, aminek sorai és oszlopai vannak.

for sor in range(1, «SOROK_PLUSZ_1»):
    for oszlop in range(1, «OSZLOPOK_PLUSZ_1»):
        print(f"{«KIFEJEZES»:4}", end="")
    print()

Illesztési pontok

  • «KIFEJEZES»: amit a cellába írunk — szorzótáblánál sor*oszlop.
  • A :4 mezőszélesség rendezi oszlopba a számokat (lásd A2 panel).
  • A záró print() a külső ciklusban áll, egy szinttel beljebb a for sor-nál — ez tördeli a sorokat.
  • Ha a belső ciklus hossza a külsőtől függ (háromszög alakú mintázat), írj range(sor)-t a belső ciklusba.

Tipikus hibák

  • A záró print() rossz szinten van. Ha beljebb kerül, minden szám külön sorba megy; ha kijjebb, egyetlen hosszú sor lesz.
  • Elmarad az end="" a belső kiírásból — ekkor minden cella új sorba kerül.
  • Ugyanazt a ciklusváltozót használják kívül és belül. A belső felülírja a külsőt, és összekeveredik a számolás.

Minden kódváz kitöltött változata futtatással ellenőrizve. A készlet a tanmenettel együtt bővül: a listás panelek (D készlet) később készülnek el. Az azonosítók (A1, B2, C5…) állandóak — az óravázlatok és a feladatlapok ezekre hivatkoznak.

Programozási alapok · 10. évfolyam · Váci SZC Petzelt József Technikum

Utolsó frissítés: 2026. 09. 24.

Vissza a kódpanelekhez · Oktatás