Liste auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
FynnDE
User
Beiträge: 6
Registriert: Dienstag 2. Juni 2020, 14:03

Moin,
ich hab ein Problem mit dem auslesen einer Liste.
Und zwar liest das Programm erstmal eine Text Datei aus und packt danach den Inhalt dieser Datei in eine Liste.
Das funktioniert, ich habe es mir einmal ausgeprinted gehabt.
Jetzt möchte ich das das Programm einen Input in der Liste sucht und wenn er gefunden ist es entsprechend ausprinted.
Das funktioniert allerdings nur mit einem Buchstaben und irgendwie auch nicht richtig, da er den einen Buchstaben zwar erkennt den anderen aber nicht obwohl beide in der Text Datei vorkommen.

Code: Alles auswählen

def login():
    bntzereingabe = input("Geben sie ihren Benutzernamen an:\n")
    f = open("UserListe", "r")
    liste = f.readlines()
    for i in liste:
        if bntzereingabe in liste[1]:
            print("Gefunden")
        else:
            print("Nicht gefunden")
    f.close
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@FynnDE: Bei `bntzereingabe` fehlen Buchstaben.

`f` ist ein zu kurzer Name, der sagt ja nix aus. Die Datei sollte zudem auch wieder geschlossen werden. Dazu müsste man die `close()`-Methode auch *aufrufen*. Oder besser gleich die ``with``-Anweisung verwenden. Bei Textdateien sollte man auch immer explizit die Kodierung angeben.

`liste` ist ein zu generischer Name. Der Name sollte dem Leser verraten was der Wert dahinter bedeutet.

Eine Laufvariable `i` zu nennen und sie dann *nicht* an ganze Zahlen zu binden ist mehr als überraschend. Wieder: verwende gute, passende, beschreibende Namen. Und wo wird dieser Wert im Programm denn dann verwendet? Das ist dann wohl auch der Fehler.

``in`` ist auch nicht der richtige Vergleichsoperator. Du willst da sicher auf Gleichheit testen und nicht ob ein Name in einem anderen Namen enthalten ist. Beim Einlesen müsstest Du Dich dann wahrscheinlich auch um die Zeilenendezeichen kümmern.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten