私はまだ再帰を理解しようとしており、コードが出力することを期待していたものと実際に出力したものは異なります。
これは、YouTubeで見つけた簡単な例に基づいたコードです。
def count(n):
if n > 0:
print "Count 1", ", ", n
count(n - 1)
print "Count 2", ", ", n
else:
print "Done"
count(1)
そして、これはそれが印刷するものです、
カウント 1 , 1
終わり
カウント 2 , 1
私が期待していたのは
カウント 1 , 1
終わり
終わり
私の理解 (もちろん間違っています) は、count(1) (外側のカウント関数の場合) が呼び出され、1 が 0 より大きいため 1 が出力され、次に count(1 - 1) (内側のカウント関数) が呼び出されるということです。 count(0) ( outer count function ) であり、0 は 1 より大きくないため、Done が出力されます。次に、count(1 - 1) (内部カウント関数) からの戻り値も Done を返すと考えました。これは、内部 count() に入力された他の n 値がなかったためです。1回の印刷と1回の印刷が2回行われる方法がわかりませんか???