'Den Bauplan fuer ein Girokonto definieren wir als Klasse, hier: class Konto' 'Die Objekte (hier: die Konten) werden als Komponenten der Liste konto gefuehrt' 'Komponenten dieser Liste: konto[0], konto[1], . . . ' 'Mit len(konto) erhalten wir die Anzahl der Komponenten in der Liste konto' class Konto: 'Attribute' def __init__(self, name, kontonummer): self.stand = 0.0 # Kontostand zu Anfang self.inhaber = name self.nr = kontonummer 'Methoden' def einzahlen(self, betrag: float): self.stand += betrag def auszahlen(self, betrag: float): self.stand -= betrag def verzinsen(self, zinsfuss: float): zinssatz = zinsfuss/100 self.stand = self.stand + zinssatz*self.stand 'Erstellen einer Liste von Objekten (Instanzen) der Klasse Konto' konto = [Konto(' ', 0) for _ in range(1)] 'Die vorstehend definierte Liste konto hat konto[0] als einzige Komponente' 'Wenn ein neues Konto angelegt wird, werden neu angelegte Konten mit append angehaengt' 'Folglich sind konto[1], konto[2], . . . die neu angelegten Konten' def ueberweisung(quellkonto, zielkonto, betrag): quellkonto.auszahlen(betrag) zielkonto.einzahlen(betrag) def zahlungseingang(konto, betrag): konto.einzahlen(betrag) def zahlungsausgang(konto, betrag): konto.auszahlen(betrag) def verzinsung(konto, zinsfuss): konto.verzinsen(zinsfuss) def kontostaende(): for i in range(1,len(konto)): print('Kontostand ',konto[i].inhaber,': ', konto[i].stand) print() ans = 'c' while ans != 'n': ans = input('Aktion: ransfer inzahlen uszahlen chliessen verinsen onto ede ') if ans == 't': quellname = input('Name Inhaber Quellkonto: ') zielname = input('Name Inhaber Zielkonto: ') x = 0 y = 0 i = 0 while i < len(konto): if konto[i].inhaber == quellname: x = i break i += 1 i = 0 while i < len(konto): if konto[i].inhaber == zielname: y = i break i += 1 if x == 0 or y == 0: if x == 0: print(quellname, 'nicht gefunden') if y == 0: print(zielname, 'nicht gefunden') else: betrag = float(input('Betrag: ')) zahlungsausgang(konto[x], betrag) zahlungseingang(konto[y], betrag) print() kontostaende() print() if ans == 'e': name = input('Name des Inhabers: ') i = 0 x = 0 while i < len(konto): if konto[i].inhaber == name: x = i break i += 1 if x == 0: print(name, 'nicht gefunden') else: betrag = float(input('Betrag: ')) zahlungseingang(konto[x], betrag) print() kontostaende() print() if ans == 'a': name = input('Name des Inhabers: ') i = 0 x = 0 while i < len(konto): if konto[i].inhaber == name: x = i break i += 1 if x == 0: print(name, 'nicht gefunden') else: betrag = float(input('Betrag: ')) zahlungsausgang(konto[x], betrag) print() kontostaende() print() if ans == 'z': name = input('Name des Inhabers: ') i = 0 x = 0 while i < len(konto): if konto[i].inhaber == name: x = i break i += 1 if x == 0: print(name, 'nicht gefunden') else: zinsfuss = float(input('Zinsfuss: ')) verzinsung(konto[x], zinsfuss) print() kontostaende() print() if ans == 's': name = input('Wessen Konto soll geschlossen werden? ') i = 0 x = 0 while i < len(konto): if konto[i].inhaber == name: x = i break i += 1 if x == 0: print(name, 'nicht gefunden') else: del konto[x] print() print('vorhandene Konten:') for i in range(1,len(konto)): print(konto[i].__dict__) print() if ans == 'k': name = input('Name: ') kontonummer = int(input('Kontonummer: ')) konto.append(Konto(name, kontonummer)) print() print('vorhandene Konten:') for i in range(1,len(konto)): print(konto[i].__dict__) print()