Mit einem zweiten ‘return’ im else-Zweig funktioniert es.

Verstehe das allerdings nicht: ‘else’ sollte nur die Funktion mit dem
neuen Zähler aufrufen, selbst aber nichts zurückgeben.

def listenlaenge (liste, zaehler=0):
    if liste == []:
        print("zaehler: {}".format(zaehler))
        return zaehler
    else:
        zaehler += 1
        return listenlaenge(liste[1:], zaehler)

a = listenlaenge([2, 5, 6, 1])
print("a: {}".format(a))

# >>> zaehler: 4
# a: 4


Am 02.07.24 um 23:02 schrieb Peter J. Holzer:
On 2024-07-02 18:56, Andreas Röhler <andreas.roeh...@online.de> wrote:
Die untenstehende Funktion soll die Länge einer Liste berechnen.
Leider gelingt es nicht, das Ergebnis einer Variablen "a" zuzuweisen.
Diese erhält "None".
Hat jemand eine Idee?

def listenlaenge (liste, zaehler=0):
      if liste == []:
          print("zaehler: {}".format(zaehler))
          return zaehler
      else:
          zaehler += 1
          listenlaenge(liste[1:], zaehler)
Hier fehlt das return.

         hp
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: andreas.roeh...@online.de
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: arch...@mail-archive.com

Reply via email to