python学習-階乗を計算するいくつかの方法
1729 ワード
方法1:普通のforループ文:
結果:
方法2:前編の博文で述べたreduce()関数を採用する:
結果:
方法3:関数の再帰を採用する:
結果:
関数の再帰には終了メカニズムが必要です.そうしないと、ずっと再帰します.上記のプログラムでif判定文が与えられてループの進行を終了する.
以上の3つの方法はそれぞれ異なる方法を採用しており、1つ目は最も理解しやすく、2つ目は最もpythonicであり、3つ目は使いやすさが最も高い.3つ目は、いつでも呼び出すことができ、異なる値を得ることができる階乗関数を直接定義します.
a = 1
n = 5
for i in range(1,n+1):
a = a * i
print(a)
結果:
120
方法2:前編の博文で述べたreduce()関数を採用する:
from functools import reduce
n = 5
print(reduce(lambda x,y:x*y,range(1,n+1)))
結果:
120
方法3:関数の再帰を採用する:
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return (n*factorial(n-1))
a = factorial(5)
print(a)
結果:
120
関数の再帰には終了メカニズムが必要です.そうしないと、ずっと再帰します.上記のプログラムでif判定文が与えられてループの進行を終了する.
以上の3つの方法はそれぞれ異なる方法を採用しており、1つ目は最も理解しやすく、2つ目は最もpythonicであり、3つ目は使いやすさが最も高い.3つ目は、いつでも呼び出すことができ、異なる値を得ることができる階乗関数を直接定義します.