Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

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

48
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)
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

1
class Pogyasz:

    def __init__(self, nev):
        self.nev = nev
        self.pogyasz_lista = []

    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_darab(self):
        print('A pogyászok száma:', len(self.pogyasz_lista))

    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.")

pogyasz = Pogyasz('csomag.txt')
pogyasz.beolvas()
pogyasz.kiir_darab()
pogyasz.kiir_atlag(51)
pogyasz.kiir_meret()
0