私はプログラミングが初めてで、コンピュータサイエンス入門コースを受講しています。私たちはPython 3.6で作業しています。私たちの教授が教えてくれた練習があります。私のコードで "Return 0"が動作するのはなぜですか?
基本的に、入力がリストであり、値の合計を返さなければならないような関数を書く必要があります。最初のリストの要素としてリストがある場合は、その中のすべての数を合計する必要があります。
私の友人が私を助け、コードは機能しましたが、なぜそれが機能するのか理解できません。
ここでは、コードです:
def f(L):
sum = 0
if len(L)==0:
return 0
if isinstance(L[0], int):
sum = sum + L[0]
elif isinstance(L[0], list):
sum = sum + f(L[0])
L.remove(L[0])
return sum + f(L)
入力の例は次のとおりです。
print(f([[99777634], [97179966, 91871251], [99887343, 97636420], [92431849]]))
誰かがこの「リターン0」が動作し、なぜそれがどのように動作するかを私に説明できますか?
私には分かりませんが、私はその質問を理解しています。コードのその部分は、リストが空(長さが0)かどうかをチェックし、その場合は0を返します。空リストの合計が実際には0であるため、これは正しいです。 – sepp2k
再帰を終了できるように、再帰的な基本ケースのように見えます。また、リストを反復して、センチネルを使わずに合計を計算できるので、あなたがやっていることを行う良い方法のようには思えません。 – birryree