Path: csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Stephan Herrmann Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Zuweisung via return Date: Wed, 03 Jul 2024 00:22:54 +0200 Organization: sitka Message-ID: <87bk3fh1s1.fsf@mailbox.org> References: <7324215d-fbce-490c-97de-f0a825e85780@online.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: solani.org; logging-data="121841"; mail-complaints-to="abuse@news.solani.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cancel-Lock: sha1:+mVyCVtlFrC4R5kIN1LKtIBWmXA= sha1:uC5h3RrqE/34e7fkxdVG6hKRJvk= X-User-ID: eJwFwQkBwDAIA0BLTfg2OUDBv4TemTi8Q91cbW0XskEc1EbpTRK4aUwfKaFqTn9ybgWG0/8DGnwRPg== Xref: csiph.com de.comp.lang.python:6072 Andreas Röhler writes: > 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) > Im "else" Teil gibt du ja keinen Funktionswert zurück. Wenn das rekrsiv sein soll, dann vielleicht so: def listenlaenge(liste): if liste == []: return 0 else: return listenlaenge(liste[1:]) + 1 Zur Dokumentation schreibt man auch def listenlaenge(liste) -> int: damit klar ist, dass hier ein Rückgabewert kommt (kommen sollte). Oder du verwendest die eingebaute Funktion len(liste) -- Stephan