[Python-de] Re: Zuweisung via return

Andreas Röhler <[email protected]> Wed, 3 Jul 2024 11:21:53 +0200
Newsgroups gmane.comp.python.general.german
Message-ID <[email protected]>
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)
_______________________________________________
python-de Mailingliste -- [email protected]
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected]
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: [email protected]