rekursiver Funktionsaufruf

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

Mittwoch 11. Oktober 2006, 12:29

Hallo, folgende Frage verwirrt mich:

Code: Alles auswählen

funcBla(a,b):
	if(a==b):
		result = b
	else:
		b -= 1
		funcBla(a,b)
	return result
a = 0, b = 1

Wenn nun die Funktion sich selber aufruft, und dann die Bedingung if(a==b) zutrifft, wem liefert dann die Funktion den return wert zurück?
- sich selber (da sie von sich selber aufgerufen wurde)
- der ursprünglich aufrufenden funktion

bin verwirrt =S
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Mittwoch 11. Oktober 2006, 12:58

Der Wert wird bei dir niemandem geliefert... Um einen Returnwert zu erhalten, musst du in auch irgendetwas zuweisen, also "x = funcXY()", dann wird der Return-Wert "x" zugewiesen.

Und damit ist eigentlich auch deine Frage beantwortet, da die Zuweisung innerhalb der Funktion ist, kommt das return auch da an.

Code: Alles auswählen

def funcBla(a,b):
    if a != b:
        b = funcBla(a,b-1)
    return b
So sollte es einigermaßen sinnvoll sein.

Frage beantwortet? Sonst bitte umformulieren.
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

Mittwoch 11. Oktober 2006, 13:04

*autsch*

ok, völlig logisch und nachvollziehbar!
Da ist mir wohl ein Blauwahl auf der Leitung gestanden...

Thx
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Antworten