x = 1 の後で関数が壊れない理由がわかりません。
しかし、それは:
>>> ================================ RESTART ================================
>>> x = 1
>>> def thisFunc(x):
print("Function called on x-value: ", x)
if x > 1:
result = thisFunc(x-1)
print(result)
return x+1
>>> thisFunc(x)
Function called on x-value: 1
2
>>>
編集:なぜそれが何をするのか、なぜ最後に x の値を出力するのですか?
まあ、あなたがそうするように言っているので、それはそれを印刷します。関数を実行しながら x の値をたどってみてください (「x は1、1 は 1より大きくない。1+1 を返す。[新しいケース] x は 2、2 は 1 より大きい...」そしてすぐ)。
return
そしてrecursion
プログラミングの一部です。return ステートメントは、関数の終了を指定し (さらに数行のコードがある場合でも)、要求されたものにデータを返します。あなたの場合、「これらのルールを考えると、x が 1 の場合はどうなりますか?」と尋ねています。返されたデータがあなたの答えです。
再帰とは、(あなたが) 必要な場合に、関数自体にそれ自体を呼び出させるという単純な問題です。プログラムに、「x が 1 よりも大きい限り、この関数を呼び出して [最初に呼び出された関数と同じである] を呼び出して、その機能を実行させます」と指示するだけです。関数をよりよく理解するために、関数内"Function called on x-value: "
の最初のprint
ステートメントに行を追加するか、少なくとも印刷された行がx
であるかを識別できるようにすることをお勧めしますresult
。
再帰のより詳細な説明については、フラッド フィル アルゴリズムとゾンビと猫で説明された再帰をお勧めします