Seite 1 von 1

Überprüfen ob Werte eines Objekts existieren

Verfasst: Samstag 14. November 2020, 17:42
von Chrisu
Hy Leute!


Ich bin grade an einer Übung (Banksystem per Konsolen Programm) dran, und komme hier nicht weiter (Code noch nicht fertig, letzter elif Block, mit Kommentar).
Was bietet Python da für Möglichkeiten um zu Überprüfen ob es den Wert 'K1+K2' schon gibt?



Danke euch recht herzlich fürs aufklären!!

PS: ---->> Ich <<----- Anfänger ;)

Code: Alles auswählen

class Konto(object):

    def __init__(self, inhaber, alter, kontonummer,
                 kontostand,
                 kontokorrent=0):
        self.Inhaber = inhaber
        self.alter = alter
        self.Kontonummer = kontonummer
        self.Kontostand = kontostand
        self.Kontokorrent = kontokorrent

    def ueberweisen(self, ziel, betrag):
        if (self.Kontostand - betrag < -self.Kontokorrent):
            # Deckung nicht genuegend
            return False
        else:
            self.Kontostand -= betrag
            ziel.Kontostand += betrag
            return True

    def einzahlen(self, betrag):
        self.Kontostand += betrag

    def auszahlen(self, betrag):
        self.Kontostand -= betrag

    def kontostand(self):
        return self.Kontostand

def bankauswahl():
    print('\n### Willkommen bei Pythonbanking - Was möchten Sie tun? ###\n\n')
    print('Konto als Neukunde anlegen? Drücke 1')
    print('Ein weiteres Konto anlegen? Drücke 2')
    print('Konto bearbeiten? Drücke 3')
    print('Konto löschen? Drücke 4')
    print('Konten übersicht? Drücke 5')
    print('Programm beenden? Drücke die #-Taste\n')


while True:
    bankauswahl()
    option = input('Auswahl: ')

    if option == '1':
        K1 = Konto(input('Vor u. Nachname: '), input('Ihr Alter bitte: '),
                   input('Kontonummer: '), input('Kontostand: '))
        print('Glückwunsch! Sie haben folgendes Konto erfolgreich angelegt: ',K1.Inhaber, K1.Kontonummer)
        abfrage = input('Möchten Sie ein weiteres Konto anlegen? j/n ... ')
        if abfrage == 'n':
            continue
        else:
            K2 = Konto(input('Vor u. Nachname: '), input('Ihr Alter bitte: '),
                       input('Kontonummer: '), input('Kontostand: '))
            print('Glückwunsch! Sie haben folgendes Konto erfolgreich angelegt: ', K2.Inhaber, K2.Kontonummer)
            abfrage2 = input('Möchten Sie ein weiteres Konto anlegen? j/n ... ')
            if abfrage2 == 'n':
                continue
            else:
                print('Zur Zeit haben Sie die maximale Kontenkapazität erreicht!')

    
    
    # Abstand gelassen zur besseren Übersicht im Forum
    
    
    
    elif option == '2':
        if K2(Konto): # Wie kann ich überprüfen lassen ob "K2" schon in der Vorherigen Option angelegt wurde? Den so gehts natürlich nicht ... 
            print('Kontenkapazität erreicht!')
        else:
            K2 = Konto(input('Vor u. Nachname: '), input('Ihr Alter bitte: '),
                       input('Kontonummer: '), input('Kontostand: '))
            print('Glückwunsch! Sie haben folgendes Konto erfolgreich angelegt: ', K2.Inhaber, K2.Kontonummer)
            abfrage2 = input('Möchten Sie ein weiteres Konto anlegen? j/n ... ')
            if abfrage2 == 'n':
                continue




Re: Überprüfen ob Werte eines Objekts existieren

Verfasst: Samstag 14. November 2020, 17:58
von __blackjack__
@Chrisu: Da nummierierte Namen zu verwenden ist schon ein deutliches Zeichen, dass das falsch ist. Wenn Du mehrere Konten verwalten willst, dann gehören die in eine Datenstruktur. Beispielsweise eine Liste. Dann kannst Du auch mehr als zwei Konten verwalten.

`K1` und `K2` sind auch abgesehen von der Nummerierung schlechte Namen. Aufgrund der Grossschreibung müssten das Konstanten sein, und `k` ist eine kryptische Abkürzung. Wenn Du `konto` meinst, solltest Du das auch ausschreiben.

Mit ``continue`` sollte man sparsam umgehen, weil das unbedingte Sprünge im Programmablauf sind die man nicht an der Einrückung des Codes ablesen kann. Zudem sind die hier auch alle überflüssig weil ohne ``continue`` genau das gleiche passieren würde.

Edit: Auch die Attributnamen sollten kleingeschrieben werden und die `kontostand()`-Methode macht keinen Sinn. Den Wert kann man einfach über das Attribut abfragen.

Re: Überprüfen ob Werte eines Objekts existieren

Verfasst: Samstag 14. November 2020, 19:10
von Chrisu
Alles klar super danke für die Tipps, werde ich gleich umsetzen!!

Wie gesagt bin ich ja noch beim lernen und werds mir gleich merken! =)