Am 03.07.24 um 00:09 schrieb Marcel Logen:
Andreas Röhler in de.comp.lang.python:
Die untenstehende Funktion soll die Länge einer Liste berechnen. len(liste) Ja, ist hier nur eine Übung. Leider gelingt es nicht, das Ergebnis einer Variablen "a" zuzuweisen. Diese erhält "None". Hat jemand eine Idee? Das "return" darf wohl nicht in der zweiten Ebene innerhalb der Funktion stehen, sondern muß in der ersten erscheinen.
# Die Ebene kann nicht der Grund sein. Untenstehendes Programm gibt den Wert # von zweiter Ebene zurück und bindet diesen auch an "a". def add_result(a, b) -> int: result = a + b if result == 4: return result else: print("Nicht gleich 4") a = add_result(1, 3) print("a: {}".format(a)) b = add_result(1, 4) print("b: {}".format(b)) # >>> a: 4 # Nicht gleich 4 # b: None
<https://docs.python.org/3/reference/simple_stmts.html#the-return-statement>
|return| <https://docs.python.org/3/reference/simple_stmts.html#return> may only occur syntactically nested in a function definition Hier sehe ich keinen Grund für den Fehler.
| user15@o15:/tmp$ cat ll.py | #!/usr/bin/python3 | def listenlaenge(li): | z=0 | while li!=[]: | z+=1 | li=li[1:] | return z | | g=[53,535,2,3,7,64,356,3452] | | a=listenlaenge(g) | print(a)
| user15@o15:/tmp$ ./ll.py | 8
Das funktioniert Aufgabe/Test war allerdings eine rekursive Schreibweise. Gruß und Dank an alle, Andreas
| user15@o15:/tmp$
Marcel (Lines: 39)