0

(完全な開示、私は CodeAcademy で Python チュートリアルを行っており、Web ベースの IDE を使用しています。)

def factorial(x):
    bang = 1
        for num in x:
            bang = bang * num
    return bang

Java では、これは 2,147,483,647 より小さい数値から階乗を生成するために機能します。私はそれがpythonで動作するはずだと思いますが、そうではありません。代わりに、次のエラーが表示されます。

「トレースバック (最新の呼び出しが最後): ファイル "python"、3 行目、階乗の TypeError: 'int' オブジェクトは反復可能ではありません」

おそらく、ここで理解できないことがあるか、構文が間違っている可能性があります。さらにテストし、反復する factorial と呼ばれる別の関数を作成しました。

def factorial(x):
    if x > 2:
        return x
    else:
        return x(factorial(x-1))

これも機能せず、次のエラーが表示されます。

「トレースバック (最新の呼び出しが最後): ファイル "python"、11 行目、階乗の TypeError: 'int' オブジェクトは呼び出し可能ではありません」

私はPython初心者ですが、これらの両方が機能するはずです。Python 構文を学ぶための最良の方法についてアドバイスをお願いします...

4

2 に答える 2

1
def f(x):
        if x < 2:
            return 1
        else:
            return x * f(x - 1)
于 2013-08-16T01:51:41.077 に答える