Python實(shí)現(xiàn)階乘的四種寫(xiě)法
階乘–>>數(shù)學(xué)用n! = n*(n-1)(n-2)(n-3)…321,0的階乘也是1,本人無(wú)法演繹,只能簡(jiǎn)單的從1開(kāi)始
第一種:推導(dǎo)式+循環(huán)遍歷列表內(nèi)每個(gè)元素相乘
def factorial(n): li =[i for i in range(1,n+1)] #li = [1,2,3,4] 推導(dǎo)式,形成一個(gè)列表,從1開(kāi)始至n+1結(jié)束(左閉右開(kāi),n須+1) a = 1 # a = 1開(kāi)始計(jì)算,如果從0開(kāi)始,0×任何整數(shù)都為0,對(duì)此題無(wú)太大意義 for i in li: # 遍歷列表內(nèi)元素,循環(huán)需要遍歷完才會(huì)進(jìn)行下一步 a = a *i # =左邊的a為右邊相乘的賦值,第一次=右邊為1*1 則a =1,第二次=右邊為1*2則=左邊a=2,第三次=右邊為2*3則=左邊a=6,....... return a print(factorial(4))
第二種:調(diào)用functools模塊reduce的累計(jì)算
from functools import reduce #reduce 累計(jì)算,格式為reduce(函數(shù),序列)序列:array 列表、元組、字典 def factorial(n): li = [i for i in range(1,n+1)] #同第一種推導(dǎo)式,形成列表 return reduce((lambda x,y:x*y),li) # 匿名函數(shù)lambda print(factorial(4))
第三種:遞歸
def factorial(n): if n <=1: return 1 return n*factorial(n-1) print(factorial(5))
第四種:模塊numpy中的prod
import numpy def func(n): Array = [i for i in range(1,n+1)] return numpy.prod(Array) print(func(1))
到此這篇關(guān)于Python實(shí)現(xiàn)階乘的六種寫(xiě)法的文章就介紹到這了,更多相關(guān)Python 階乘內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于torch中tensor數(shù)據(jù)類型的轉(zhuǎn)換
這篇文章主要介紹了關(guān)于torch中tensor數(shù)據(jù)類型的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Python 微信之獲取好友昵稱并制作wordcloud的實(shí)例
今天小編就為大家分享一篇Python 微信之獲取好友昵稱并制作wordcloud的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法,需要的朋友可以參考下2020-02-02python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊
Python爬蟲(chóng)常常會(huì)面臨自己ip地址被封的情況,也許不懂的讀者就只能等ip解封之后再進(jìn)行接下來(lái)的操作了,為什么自己不做一個(gè)Python模塊專門用于處理這種情況呢?文中對(duì)于讀者開(kāi)發(fā)Python爬蟲(chóng)肯定有一定的幫助,希望讀者耐心看下去,需要的朋友可以參考下2021-06-06numpy數(shù)組的重塑和轉(zhuǎn)置實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組的重塑和轉(zhuǎn)置實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Pytorch中torch.stack()函數(shù)的深入解析
在pytorch中常見(jiàn)的拼接函數(shù)主要是兩個(gè),分別是:stack()和cat(),下面這篇文章主要給大家介紹了關(guān)于Pytorch中torch.stack()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Python利用Rasa框架和SMTPlib庫(kù)實(shí)現(xiàn)郵件回復(fù)助手
在現(xiàn)代辦公場(chǎng)景中,處理大量郵件是一項(xiàng)既耗時(shí)又容易出錯(cuò)的任務(wù),本文將詳細(xì)介紹如何使用Python的Rasa框架和SMTPlib庫(kù)建一個(gè)智能的郵件自動(dòng)回復(fù)助手,感興趣的可以了解下2025-04-04