6.3. Hogyan dolgozzunk tuple-ökkel: Gyakorlás - Statisztika egy kosármeccsről
A program megírása előtt van még egy fontos koncepció, amiről eddig csak szó esett, de gyakorlatban nem néztük meg, hogyan működik.
A modul elején láthattad, hogy bármilyen adattípust tartalmazhat egy lista:
Ez a tuple-nél sincs másképpen. Egy tuple is tartalmazhat bármilyen adattípust:
A példában történelem osztályzatok vannak lementve. A tuple-ben lévő tuple-ök mindegyike két elemet tartalmaz: egy nevet és egy hozzá tartozó osztályzatot.
Tipp: Amikor ilyen szintű összetett adatszerkezettel dolgozol, akkor a leggyakrabban használt eszközöd a for
loop lesz.
Ha például az osztályzatok átlagát szeretnénk megkapni, akkor azt a következőképpen tudod megtenni:
Ahogy a megoldásból is látszik, nem okozott gondot az hogy tuple-öket tartalmazott a tuple, amelyen dolgoztunk. Tudtuk jól, hogy az első elem mindig a tanuló neve, a második pedig az osztályzat. Ebből nekünk az osztályzat kellett, amelyre a student[1]
-el tudunk hivatkozni.
Feladat
A következőben is egy hasonlóan összetett adatszerkezettel dolgozol, mint amelyet a leckében láthattál. Feladatod az lesz, hogy a Lakers-Heats zárómeccséről készíts egy statisztikát a Lakers által szerzett pontok alapján. Ezen a linken megtalálod az összegyűjtött adatokat, mentsd le őket egy lakers_final_game_stat.py
fájlba.
Két tuple-re lesz majd szükséged:
- Egy
lakers_players
nevű tuple, amelyben a játékosokat láthatod egy-egy tupleként, az alábbi formátumban:(játékos név, játékos mezszáma)
- A másik tuple-ben pedig a Lakers által eredményeket láthatod szintén tuple-ök formájában:
(negyed száma, dobás pontja, játékos mezszáma)
A statisztika elkészítéséhez három függvényt kell létrehoznod.
Először szükségünk lesz egy get_jersey_number()
nevű függvényre, amely paraméterül megkap egy tuple-t a játékosokról és egy játékos nevet. A feladata az lesz, hogy megkeresse egy tuple-ben az adott játékost, és visszaadja annak a mezszámát.
Továbbá szükséged lesz egy get_player_score_in_quarter()
nevű függvényre, amely három paramétert kap meg:
- egy csapat által elért eredményeket,
- egy negyed számát,
- és egy játékos mezszámát.
A függvény segítségével ki kell nyerned az eredményekből a paraméterben megkapott játékos által szerzett dobások pontszámát az adott negyedből.
Végül pedig, hogy a statisztikát megkapjuk, el kell készítened a print_player_stat_in_quarter()
függvényt, amely az alábbi paramétereket kapja meg:
- egy csapat által elért eredményeket,
- egy csapatot a játékosokkal,
- egy negyedszámot,
- egy játékosnevet,
- és egy pontszámot.
Tipp: Ebben a függvényben fel kell használnod a már előzőleg elkészített függvényeket.
Ez a függvény fogja a konzolon megjeleníteni azt, hogy egy játékos egy negyedben milyen eredményeket ért el. A következő függvényhívások eredménye alapján próbáld meg elkészíteni a feladatot.
print_player_stat_in_quarter(lakers_final_game, lakers_players, 3, 'D. Green', 3)
:
print_player_stat_in_quarter(lakers_final_game, lakers_players, 1, 'J. Smith', 2)
print_player_stat_in_quarter(lakers_final_game, lakers_players, 2, 'A. Davis', 1)
Ha sikerült megírnod a feladatot, akkor nézd meg az alábbi játékos statisztikákat:
- L. James az első negyedben hány darab 3 pontost dobott.
- K. Caldwell-Pope a negyedik negyedben hány darab 2 pontost dobott.
Megoldás: Amikor elvégezted a feladatot, itt meg tudod nézni az általunk alkotott mintamegoldást. Hasonlítsd össze a kettőt, és ellenőrizd a saját verziódat. Ha minden rendben, akkor menj tovább a következő leckére.
2 hozzászólás