Zum Hauptinhalt springen

Objekte suchen

Beispiel

def finde_schueler(liste, name):
for s in liste:
if s.name.lower() == name.lower():
return s
return None

treffer = finde_schueler(klasse, "luna")
if treffer:
print("Gefunden:", treffer.name)
else:
print("Nicht da.")

Rate mal!

Warum return None?

Auflösung

Signal: nichts gefunden – Aufrufer kann prüfen.

Probiere es selbst

Experiment 1

Suche Haustier nach Name.

Experiment 2

Suche Buch nach Autor.

Experiment 3

Zähle, wie viele hunger groesser 5 haben.

Übungen

Level 1

Finde Namen in Liste.

Level 2

Funktion finde_...

Level 3

Alle mit punkte groesser-gleich 50 sammeln.

Level-2-Lösung
def finde(liste, name):
for obj in liste:
if obj.name == name:
return obj
return None

Mini-Quiz

Mini-QuizWas ist ein gaengiges 'nicht gefunden'-Signal?

Suche sitzt! Als Nächstes: Objekte zusammenarbeiten.