a = len(liste) print(f"a: {a}") Warum dann diese umständliche Funktion? Gibt's dafür einen Grund? Frank Grellert Stefan Ram <ram@zedat.fu-berlin.de> schrieb am Mi., 3. Juli 2024, 22:38:
ram@zedat.fu-berlin.de (Stefan Ram) schrieb oder zitierte:
def length( sequence ): return length( sequence[ 1: ])+ 1 if sequence else 0
Aber vielleicht ist es das, was Du (Andreas) meintest, als Du schriebst: "'else' sollte nur die Funktion mit dem neuen Zähler aufrufen, selbst aber nichts zurückgeben.", insofern als bei mir hinter "else" kein "return" steht!
Du überträgst hier einen Programmierstil, wie man ihn in LISP verwenden, würde auf Python und verwendest noch einige Begriffe in unpassender Weise, etwa, wenn Du Dir vorstellst, "return" könnte etwas zuweisen oder "else" etwas zurückgeben.
Falls Du früher in LISP programmiert hast und jetzt auf Python umsteigen solltest, ist es ganz natürlich, daß Du erst einmal die LISP-Denkweise auf Python überträgst.
Das "else:" in einer "if"-Anweisung kennzeichnet den Zweig, der ausgeführt werden soll, wenn der Wahrheitswert des if- Ausdrucks "False" ist. Es kann keine Funktionen aufrufen.
Mit "return" wird die Beendigung der Inkarnation der Funktion ausgelöst, deren Definition die kleinste das "return" enthaltende def-Definition ist. Dabei kann hinter "return" noch ein Ausdruck folgen, der den Wert des Funktionsaufrufs festlegt, der die Inkarnation der Funktion erzeugt hat, bei deren Ausführung dieses "return" ausgeführt wird. "return" kann nichts an eine Variable zuweisen. _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: grellert@web.de
participants (2)
-
Andreas Röhler
-
Frank Grellert