(完全な開示、私は 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 構文を学ぶための最良の方法についてアドバイスをお願いします...