OK, więc ten fragment kodu pochodzi z pytania dotyczącego praktyki w mojej szkole. Mamy mentalnie przeanalizować kod i sprawdzić odpowiedź.Python Function Return Loop
Kiedy go najpierw przeanalizowałem, uzyskałem 4. Skopiowałem kod i przetransportowałem go przez IDLE i otrzymałem 8. Uruchomiłem debugger i zobaczyłem, że jeszcze: return zapętla instrukcję if else do x == 0
, a następnie zwraca 1.
nie rozumiem, w jaki sposób powrócić 1 zbliża się do 8.
def foo(x=5):
if x == 0:
return 1
else:
return 2*foo(x-1)
print(foo(3))
rozumiem, że dzwoni foo(x-1)
wewnątrz funkcji foo(x=5)
co czyni go sprawdzić, czy jeszcze raz i jeszcze raz, aż x == 0
następnie go zwraca 1. W jaki sposób powrót 1 kończy się drukowanie 8?
Duplikat strony http://stackoverflow.com/questions/32653496/python-function-return-loop? – wap26
'foo' to rekursywne obliczenie" 2 do _x_ mocy "dla nieujemnych wartości całkowitych _x_. (Jeśli pomnożył 'foo (x-1)' przez 'x' zamiast przez' 2', obliczałoby to "_x_ silnię".) –
@ W3226 podany link wydaje mi się moim pytaniem – proxenmity