Pythonで再帰関数に関するいくつかのことを理解するのに少し問題があります(私は一般的に推測します)。私は答えを探してみましたが、それを探す方法もわかりませんでした。Pythonの再帰関数の戻り値
私が検索したときに、最も一般的な再帰関数の例を取る:
def sfactorr(j):
if j == 1:
return 1
else:
return j * sfactorr(j-1)
機能が1以上であるたびに、それがJの== 1になるまで再起動しますが、それは1に当たると、いけません戻り値は1ですか?明らかにそれを実行すると、関数全体の結果が得られますが、なぜそれが完全に理解できるかはわかりません。
つまり、基本条件が戻ってきたものではなく、正しい値を返す方法はありますか?
ありがとうございました
手作業で 'sfactorr(2)'を段階的に評価してみてください。 – jwodder
'j == 1'をヒットした場合の戻り値は' 1'ですが、 'else'の場合は' j'でそれを掛けています。私がちょうど昨日見ていたビデオチュートリアルがあります(Javaについては、一般的な考え方はまだありません)https://youtu.be/ozmE8G6YKww – BorrajaX
'関数が1より大きいときはいつでも、j == 1.''は間違っています。実際に起こっていることは ''関数が1と異なるたびに、j == 1になるまで再開します。 ' –