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