定義一個函數(shù),求一個數(shù)的階乘,比如求5!
#方法1,遞歸
def jc(num):
if num==1:
return 1
else:
return num*jc(num-1)
print(jc(5)) #返回120
# 方法2 ,for遍歷
def func(num):
'求一個數(shù)字的階乘,例如5!'
sum=1
for i in range(1,num+1):
sum=sum*i #可以簡化sum*=i
return sum
func(5)
print(func(5))#返回120
# 方法3,lambda表達式寫
#lambda不能調用數(shù)組,如列表。
# 這里需要借助一個函數(shù)去做(這個函數(shù)調用了lambda表達式作為參數(shù),即需要使用高階函數(shù)reduce#使用高階函數(shù),需要調用一個模塊# 將階乘改成函數(shù)形式進行調用functools
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,6)))
補充:Python極少代碼實現(xiàn)階乘函數(shù)
from functools import reduce
def my_factorial(x):
if x 0:
raise ValueError('參數(shù)不能為負數(shù)')
return reduce(lambda x, y: x*y, range(1, x+1)) if x != 0 else 1
運行結果:
>>> for i in range(10):
... print(my_factorial(i), end=' ')
>>> 1 1 2 6 24 120 720 5040 40320 362880
用好lambda、reduce、filter、map等可以很方便地定義函數(shù)。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Python 怎么定義計算N的階乘的函數(shù)
- python遞歸函數(shù)求n的階乘,優(yōu)缺點及遞歸次數(shù)設置方式
- Python3 實現(xiàn)遞歸求階乘
- python求前n個階乘的和實例
- Python階乘求和的代碼詳解