-1

Python で乗算再帰 (コンテナーのすべての値を乗算する) を実行しようとしています。この関数は、リストの要素を位置引数 (*n) として受け取ります。実行すると、「最大再帰深度に達しました」というエラーが表示されます。ただし、単に *n の代わりに n を使用してリスト内の要素を送信すると、コードは正常に機能します。

コードが機能しない:

def multiply(*n):
    if n:       
        return n[0]*multiply(n[1:])
    else:
        return 1

multiply(5,1,4,9)

作業コード:

def multiply(n):
    if n:       
        return n[0]*multiply(n[1:])
    else:
        return 1

multiply([5,1,4,9])
4

2 に答える 2