Seite 1 von 1

Hilfe bei Namenprüf-Problem

Verfasst: Samstag 17. Juni 2017, 11:48
von DerBlaeckI
HI also ich bin dabei ein Login Programm zu schreiben und bin dabei auf ein Problem gestoßen:

Code: Alles auswählen

exists = False
for i in names:
      if name in i:
            exists = True
Hier soll aus einer Liste(names) mit Kontonamen geschaut werden ob der Name überhaupt existiert.
Problem dabei wenn eine Konto mit dem Name "Timo" existiert und man nach Tim frag wird exists True gesetzt,
obwohl kein Konto mit Tim existiert.
Hätte da jemand eine Lösung für? :K
Vielen Dank
mfG DerBlaeckI

Re: Hilfe bei Namenprüf-Problem

Verfasst: Samstag 17. Juni 2017, 11:59
von Sirius3
@DerBlaeckI: ganz einfach.

Code: Alles auswählen

exists = name in names

Re: Hilfe bei Namenprüf-Problem

Verfasst: Samstag 17. Juni 2017, 12:00
von BlackJack
@DerBlaeckI: Du testest ob der gesuchte Name irgendwo in einem der Namen enthalten ist, und das trifft bei 'Tim' und 'Timo' offensichtlich zu. Du möchtest prüfen ob der gesuchte Namen *gleich* einem der Namen in der Liste ist.

Anmerkungen zum Quelltext: Laufariablen in Schleifen nur `i` nennen wenn es sich um eine ganze Zahl handelt. Alles andere ist sehr verwirrend für den Leser.

Nachdem der Name gefunden wurde, braucht man ja nicht mehr weiter suchen. An der Stelle kann man die Schleife mit ``break`` verlassen.

Letztlich brauchst Du die Schleife aber auch überhaupt gar nicht, denn es gibt ja den ``in``-Operator auf Listen. Damit ist das ein Einzeiler:

Code: Alles auswählen

exists = name in names

Re: Hilfe bei Namenprüf-Problem

Verfasst: Samstag 17. Juni 2017, 12:06
von DerBlaeckI
OK vielen Dank euch zwei, es hat mein Problem gelöst. :D
@BlackJack das mit i als ganze Zahl Variable werd ich in Zukunft beachten, danke. ;)

MfG DerBlaeckI