python3 將階乘改成函數(shù)形式進行調(diào)用的操作
定義一個函數(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不能調(diào)用數(shù)組,如列表。
# 這里需要借助一個函數(shù)去做(這個函數(shù)調(diào)用了lambda表達式作為參數(shù),即需要使用高階函數(shù)reduce#使用高階函數(shù),需要調(diào)用一個模塊# 將階乘改成函數(shù)形式進行調(diào)用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
運行結(jié)果:
>>> 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ù)。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python處理字節(jié)串:struct.pack和struct.unpack使用
這篇文章主要介紹了Python處理字節(jié)串:struct.pack和struct.unpack使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Python爬蟲設置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問題
這篇文章主要介紹了Python爬蟲設置Cookie解決網(wǎng)站攔截并爬取螞蟻短租,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02Python實現(xiàn)執(zhí)行Shell命令并獲取輸出
這篇文章主要介紹了如何借助?os.system()?從?Python?腳本執(zhí)行?cmd?命令,以及如何借助?Python?中的?subprocess?模塊以更簡單的方式從腳本執(zhí)行?cmd?命令,感興趣的小伙伴可以了解下2023-10-10