現在、私は少しPythonの再帰関数を使って実験しています。私はそれらについてインターネット上でいくつかのことを読んできました。そして私は自分自身で簡単な関数再帰関数を作りました。しかし、私はまだベースケースの使い方がわかりません。Python:再帰関数の基本ケース
私はうまく設計された再帰関数は次の規則を満たしていることを知っている:
- ベースケースがあります。
- 再帰的な手順は、ベースケースに向かって動作します。
- サブ問題の解は、元の問題の解を提供します。
今私は私が持っている質問にしたがっています:複数のステートメントからベースケースを構成することは許されていますか?
つまり、以下の自己記述スクリプトの基本ケースは有効ですか?
def checkstring(n, string):
if len(string) == 1:
if string == n:
return 1
else:
return 0
if string[-1:] == n:
return 1 + checkstring(n, string[0:len(string) - 1])
else:
return checkstring(n, string[0:len(string) - 1])
print(checkstring('l', 'hello'))
'checkstring(n、string [0:len(string) - 1])')を一度呼び出して、値を保存すれば、コードがはっきりします。 –
あなたは何百もの異なる 'if'ブランチで関数を再帰的に呼び出すことができます。あなたが望むのであれば、それを言葉で表現することができますが、実際には基準は非常に単純です:_ "機能は私が望むことをしますか?"_正しい数字が表示されたら、それは"有効な "機能です。 –