Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!
Pyhton feladat 3
Törölt
kérdése
137
A csomag.txt forrásállomány, csomagok méret adatait tartalmazza, a feladatok megoldása során ezeket az adatokat használja!
A csomag.txt állomány szerkezete:
· a (szélesség cm): pl: 51
· b (magasság cm): pl.: 33
· c (mélység cm): pl.: 24
· m (súly kg-ban megadva): pl.: 10
Az állomány első sora a mezőneveket tartalmazza kettőskereszttel elválasztva.
A megoldás mintája:
III/A, B:
A pogyászok száma: 101
III/C:
Az 51 cm-es pogyászok átlag súlyértéke: 7375 g
III/D:
A legmagasabb pogyász méretei: 47x46x16, súlya: 4 kg.
A. Olvassa be osztály segítségével (utóbbit hozza létre külön modulban) a csomag.txt fájlból a játékosok adatait, és tárolja el összetett adatszerkezetben, ami elősegíti a további feladatok könnyű megoldását! Ügyeljen arra, hogy az állomány első sora az adatok fejlécét tartalmazza! (7p)
B. Írassa ki a pogyászok számát a mintának megfelelően a konzolra! (2p)
C. Határozza meg és írassa ki a konzolra a minta szerint, hogy mennyi az 51 cm széles pogyászok átlag súlya gramban. (1kg = 1000g) (4p)
D. Írassa ki konzolra a mintának megfelelően a legmagasabb pogyász méreteit és súlyát (ha több is van, akkor az első legmagasabb adatait).(4p)
def beolvas(self):
with open(self.nev, 'r') as allomany:
self.fejlec = allomany.readline().rstrip().split('#')
for sor in allomany:
self.pogyasz_lista.append({self.fejlec[i]: int(szam) for i, szam in enumerate(sor.rstrip().split('#'))})
def kiir_atlag(self, szelesseg = 51):
suly_lista = [adat['m'] for adat in self.pogyasz_lista if adat['a'] == szelesseg]
print('Az', szelesseg, 'cm-es pogyászok átlag súlyértéke:', sum(suly_lista) / len(suly_lista) * 1000, 'g')
def kiir_meret(self):
legmagasabb = None
for pogyasz in self.pogyasz_lista:
if legmagasabb == None or legmagasabb['b'] < pogyasz['b']:
legmagasabb = pogyasz
print(f"A legmagasabb pogyász méretei: {legmagasabb['a']}x{legmagasabb['b']}x{legmagasabb['c']}, súlya: {legmagasabb['m']} kg.")