本文主要是介绍Python实现阶乘的四种写法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Python实现阶乘的四种写法》本文主要介绍了Python实现阶乘的六种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
阶乘–>>数学用n! = n*(n-1)(n-2)(n-3)…321,0的阶乘也是1,本人无法演绎,只能简单的从1开始
第一种:推导式+循环遍历列表内每个元素相乘
def factorial(n): li =[i for i in range(1,n+1)] #li = [1,2,3,4] 推导式,形成一个列表,从1开始至n+1结束(左闭右开,n须+1) a = 1 # a = 1开始计算,如果从0开始,0任何整数都为0,对此题无太大意义 for i in li: # 遍历列表内元素,循环需要遍历完才会进行下一步 a = a *i # =左边的a为右边相乘的赋值,第一次=右边为1*1 则a =1,第二次=右边为1*2则=左边a=2,第三次=右边为2*3则=左边a=6,....... return a print(factorial(4))
第二种:调用functools模块reduce的累计算
from functools import reduce #reduce 累计算,格式为reduce(函数,序列)序列:array 列表、元组、字典 def factorial(n): li = [i for i China编程in rangChina编程e(1,n+1)] #同第一种推导式,形成列表 return reduce((lambda x,y:x*y),li) # 匿名函数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)] js return numpy.prod(Array) print(func(1))
到此这篇关于python实现阶乘的六种写法的文章就介绍到这了,更多相关Python 阶乘内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于Python实现阶乘的四种写法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!