Python feladatok és tesztek (238 feladat)

Az oldal folyamatos fejlesztés alatt áll. Ha észrevételed van, örülnénk, ha megosztanád velünk: info @ tanit . hu
iPhone-okra egy Python programozási lehetőség: Python 3IDE, Androidos mobilokra: QPython 3L
Az érettségi feladatokat a mellékletekkel, megoldásokkal együtt az Oktatási Hivatal weboldaláról vettük át. És van Online Python editor is :)

Tartalomjegyzék


12 Osztályok URL


12-00 Osztályok - teszt URL


Feladat leírás:

FOGALMAK:
OOP - Objektum Orientált Programozás
objektum - Összetett adatstruktúra, amelyben együtt vannak különböző változók és függvények. Az objektum változóinak aktuális értékei jelentik az objektum állapotát, a függvényei pedig azt, hogy mit lehet vele tenni. A metódusok sok esetben megváltoztathatják az objektum állapotát, vagy információt szolgáltathatnak az objektum állapotáról. Az objektum felfogható úgy, mintha egy virtuális betanított munkás lenne.
osztály - Az objektumok típusa avagy sablonja, amely alapján az objektumok készülnek. Az osztályban van leírva, hogy a belőle készülő objektumok milyen tulajdonságokkal rendelkeznek és milyen metódusaik vannak. Az osztály felfogható úgy, mint a betanított munkások munkaköri leírása.
példányosítás - Az a művelet, amely során az osztályból létrehozunk egy objektumot. A példányosítás felfogható úgy, mintha a munkaköri leírás alapján vennénk fel egy új betanított munkást.
class osztályNeve: - Egy osztály létrehozása.
objektum = osztályNeve() - Egy objektum létrehozása, azaz egy osztály példányosítása
objektum.__dict__ - Az objektum állapotának lekérdezése. Másképpen fogalmazva az objektum jellemzők értékeinek lekérdezése szótár (dictionary) formában
objektum.__dict__ = {...} - Az objektum több állapotjellemzőjének beállítása szótár segítségével
konstruktor - A példányosításkor automatikusan meghívásra kerülő metódus: def __init__(self):


PÉLDÁK:
Egy egyszerű "pont" osztály, amelynek x és y koordinátája van:
class pont:
 x = None
 y = None
 def __init__(self, x = 0, y = 0):
  self.x = x
  self.y = y
 def menjJobbra(self, hossz):
  self.x += hossz

# 1. példányosítás
a = pont(10, 20)

# 2. példányosítás. Itt az __init()-ben megadott alapértelmezett 0,0 értékeket kapja az objektum
b = pont()

# Eltoljuk jobbra mindkét pontot öttel
a.menjJobbra(5)
b.menjJobbra(5)

# Kiírjuk a pontok állapotát
print('a =', a.__dict__) # A konzolon ez fog megjelenni: {'x': 15, 'y': 20}
print('b =', b.__dict__) # A konzolon ez fog megjelenni: {'x': 5, 'y': 0}




Oldd meg az alábbi űrlap feladatait: 12 Osztályok - teszt

12-01 Hibajavítás URL


Feladat leírás:
Egy virtuális pontot mozgatunk két dimenziós koordináta rendszerben.
Hozz létre egy "12-01 Hibajavitas.py" Python fájlt és másold bele a mellékelt forrásfájl tartalmát.
Az osztályt leíró kódban van öt hiba, ezeket javítsd ki!
Az eredeti feladat, amelyre a hibás megoldás született, az alábbi:
Hozz létre egy virtuális pontot egy két dimenziós koordinátarendszer origójában (azaz a 0:0, helyen).
Kérdezd meg a felhasználótól háromszor egymás után, hogy melyik irányba és mennyivel szeretné elmozdítani a pontot. A válaszoknak megfelelően módosítsd a pont állapotát és végül írd ki a pont végső koordinátáit!
Minden pontot érintő műveletet egy "pont" nevű osztállyal valósíts meg!
Az elmozdulás értékénél biztosan egész számot ad meg a felhasználó, azt nem kell ellenőrizni. Az elmozdulás irányát is helyesen adja meg, azt sem kell ellenőrizni.
A program kommunikációja a mintának megfelelően történjen.
A mellékelt fájlt innen töltheted le: 12-01 Hibajavítás.txt
Végeredmény minta (részlet):
12-01 Hibajavítás-0
Végeredmény minta (részlet):
12-01 Hibajavítás-1

12-02 Hibajavítás URL


Feladat leírás:
Egy virtuális pontot mozgatunk két dimenziós koordináta rendszerben.
Hozz létre egy "12-02 Hibajavitas.py" Python fájlt és másold bele a mellékelt forrásfájl tartalmát.
Az osztályt leíró kódban van öt hiba, ezeket javítsd ki!
Az eredeti feladat, amelyre a hibás megoldás született, az alábbi:
Hozz létre egy virtuális pontot egy két dimenziós koordinátarendszer x=5, y=5 helyén.
Kérdezd meg a felhasználótól háromszor egymás után, hogy melyik irányba és mennyivel szeretné elmozdítani a pontot. A válaszoknak megfelelően módosítsd a pont állapotát és végül írd ki a pont végső koordinátáit!
Minden pontot érintő műveletet egy "pont" nevű osztállyal valósíts meg!
Az elmozdulás értékénél biztosan egész számot ad meg a felhasználó, azt nem kell ellenőrizni. Az elmozdulás irányát is helyesen adja meg, azt sem kell ellenőrizni.
A program kommunikációja a mintának megfelelően történjen.
A mellékelt fájlt innen töltheted le: 12-02 Hibajavítás.txt
Végeredmény minta (részlet):
12-02 Hibajavítás-0
Végeredmény minta (részlet):
12-02 Hibajavítás-1

12-03 Pont távolsága URL


Feladat leírás:
Egy virtuális pontot mozgatunk két dimenziós koordináta rendszerben és megállapítjuk az origótól való távolságát.
Hozz létre egy "12-03 Pont tavolsaga.py" Python fájlt.
Hozz létre egy virtuális pontot egy két dimenziós koordinátarendszer x=0, y=0 helyén.
Kérdezd meg a felhasználótól kétszer, hogy melyik irányba és mennyivel szeretné elmozdítani a pontot. A válaszoknak megfelelően módosítsd a pont állapotát és végül írd ki, hogy a pont milyen messze van az origótól, azaz a 0:0 ponttól!
A távolság értékét 2 tizedesre kerekítsd.
Minden pontot érintő műveletet egy "pont" nevű osztállyal valósíts meg, azaz a mozgatásokat és az origótól való távolság lekérdezését is.
Az elmozdulás értékénél biztosan egész számot ad meg a felhasználó, azt nem kell ellenőrizni. Az elmozdulás irányát is helyesen adja meg, azt sem kell ellenőrizni.
A program kommunikációja a mintának megfelelően történjen.
Végeredmény minta (részlet):
12-03 Pont távolsága-0
Végeredmény minta (részlet):
12-03 Pont távolsága-1

12-04 Pontok távolsága URL


Feladat leírás:
Két virtuális pontot mozgatunk két dimenziós koordináta rendszerben és megállapítjuk az egymástól való távolságukat.
Hozz létre egy "12-04 Pontok tavolsaga.py" Python fájlt.
Hozz létre két virtuális pontot egy két dimenziós koordinátarendszer 5:5 és 3:3 helyén.
Kérdezd meg a felhasználótól hogy melyik irányba és mennyivel szeretné elmozdítani az egyik, majd a másik pontot. A válaszoknak megfelelően módosítsd a pontok állapotát és végül írd ki, hogy a két pont milyen messze van egymástól!
A távolság értékét 2 tizedesre kerekítsd.
Minden pontot érintő műveletet egy "pont" nevű osztállyal valósíts meg, azaz a mozgatásokat és egy másik ponttól való távolság lekérdezését is.
Az elmozdulás értékénél biztosan egész számot ad meg a felhasználó, azt nem kell ellenőrizni. Az elmozdulás irányát is helyesen adja meg, azt sem kell ellenőrizni.
A program kommunikációja a mintának megfelelően történjen.
Végeredmény minta (részlet):
12-04 Pontok távolsága-0
Végeredmény minta (részlet):
12-04 Pontok távolsága-1
Ugrás az elejére