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.

Következő lecke  
Hozzászólások

10 hozzászólás