class Polozka: def __init__(self, nazev, cena): self.nazev = nazev self.cena = cena class Operace: def __init__(self, polozky): self.polozky_a_ceny = {} self.castka = 0 for polozka in polozky: self.polozky_a_ceny[polozka] = polozka.cena self.castka += polozka.cena class Ucet: def __init__(self, cislo_uctu, operace): self.cislo_uctu = cislo_uctu self.seznam_operaci = operace def hodnota_uctu(self): vysledek = 0 for operace in self.seznam_operaci: vysledek += operace.castka return vysledek def podrobne_ucetnictvi(self): stav = 0 for operace in self.seznam_operaci: stav_operace = 0 for polozka, cena in operace.polozky_a_ceny.items(): stav_operace += cena stav += stav_operace print( f"Průměrná cena položek v nákupu je {stav_operace/len(operace.polozky_a_ceny):2.2f}." ) print(f"Hodnota účtu je {stav}.") class Zakaznik: def __init__(self, jmeno, ucty): self.jmeno = jmeno self.ucty = ucty def main(): polozky = [ Polozka("svíčka", 50), Polozka("bačkora", 70), Polozka("sklenička", 20), Polozka("polštář", 220), Polozka("myš", 150), ] zakaznik_1 = Zakaznik( "Jana", [ Ucet( 0, [ Operace(polozky=[polozky[2], polozky[4]]), Operace(polozky=[polozky[1], polozky[3], polozky[0]]), ], ) ], ) zakaznik_2 = Zakaznik( "Jan", [ Ucet( 1, [ Operace(polozky=[polozky[1], polozky[4], polozky[3]]), Operace(polozky=[polozky[2], polozky[3], polozky[2]]), Operace(polozky=[polozky[1], polozky[2], polozky[3], polozky[4]]), ], ) ], ) print(zakaznik_1.jmeno) print("Hodnota účtu", zakaznik_1.ucty[0].hodnota_uctu()) zakaznik_1.ucty[0].podrobne_ucetnictvi() print() print(zakaznik_2.jmeno) print("Hodnota účtu", zakaznik_2.ucty[0].hodnota_uctu()) zakaznik_2.ucty[0].podrobne_ucetnictvi() main()