详解用python计算阶乘的几种方法

第一种:利用functools 工具处理

import functools
result = (lambda k: functools.reduce(int.__mul__, range(1, k + 1), 1))(5)
print(result)

第二种:普通的循环

x = 1
y = int(input("请输入要计算的数:"))
for i in range(1, y + 1):
  x = x * i
print(x)

第三种:利用递归的方式

def func(n):
  if n == 0 or n == 1:
    return 1
  else:
    return (n * func(n - 1))

a = func(5)
print(a)

以上三种方式分别采用了不同的方法,第二种是最容易理解的,第一种是最pythonic的,而第三种则是易用性最高的。第三种直接定义一个阶乘函数,随时都可以调用,从而得到不同值。

希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python 阶乘累加和的实例

    阶乘:也是数学里的一种术语:阶乘指从1乘以2乘以3乘以4一直乘到所要求的数:在表达阶乘时,就使用"!"来表示.如h阶乘,就表示为h!:阶乘一般很难计算,因为积都很大. 提问:求1+2!+3!+...+20!的和,如果输入非正整数或者字符等就输出"输入有误,请输入正整数" 程序 #测试2 第二题 阶乘累加和 x = input() if x.isdigit(): a = eval(x) s = 0 b = 1 if a >0 and a%1 == 0: for

  • python计算阶乘和的方法(1!+2!+3!+...+n!)

    方法一:使用while循环来计算 n = int(input()) jie = 1 sum = 0 i = 1 while n >= i: jie = jie * i sum = sum + jie i = i + 1 print(sum) 方法二:使用递归函数调用阶乘方法求和(其中n的值在1~40之间) def jie(n): if n == 1: return 1 else: return n*jie(n-1) n = int(input()) sum = 0 if n < 1 or n

  • 详解用python计算阶乘的几种方法

    第一种:利用functools 工具处理 import functools result = (lambda k: functools.reduce(int.__mul__, range(1, k + 1), 1))(5) print(result) 第二种:普通的循环 x = 1 y = int(input("请输入要计算的数:")) for i in range(1, y + 1): x = x * i print(x) 第三种:利用递归的方式 def func(n): if n

  • 详解用Python处理Args的3种方法

    1. sys 模块 Python 中的 sys 模块具有 argv 功能.当通过终端触发 main.py 的执行时,此功能将返回提供给 main.py 的所有命令行参数的列表.除了其他参数之外,返回列表中的第一个元素是 main.py 的路径. 考虑下面的 main.py 示例 import sys list_of_arguments = sys.argv print(list_of_args[0]) print(list_of_args[1]) print(list_of_args[2]) p

  • 详解用python生成随机数的几种方法

    今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下. 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码. 1 从给定参数的正态分布中生成随机数 当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用python中现有的模块和函数来生成随机数了.这里调用了Numpy模块中的random.normal函数

  • 详解使用Python下载文件的几种方法

    在使用Python进行数据抓取的时候,有时候需要保持文件或图片等,在Python中可以有多种方式实现.今天就一起来学习下. urllib.request 主要使用的是urlretrieve方法,该方法处理待淘汰的方法,不建议使用. import urllib.request url = 'https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png' urllib.request.urlretrieve(url,

  • 详解查看Python解释器路径的两种方式

    进入python的安装目录, 查看python解释器 进入bin目录 # ls python(看一下是否有python解释器版本) # pwd (查看当前目录) 复制当前目录即可 1. 通过脚本查看 运行以下脚本,或者进入交互模式手动输入即可. import sys import os print('当前 Python 解释器路径:') print(sys.executable) r""" 当前 Python 解释器路径: C:\Users\jpch89\AppData\Lo

  • 详解JavaScript中分解数字的三种方法

    本文基于免费代码营基本算法脚本"分解数字" 在数学中,非负整数n的阶乘可能是一个棘手的算法.在本文中,我将解释这种方法,首先使用递归函数,第二种使用而循环,第三种使用以循环. 算法挑战 返回提供的整体的阶乘. 如果整体用字母n表示,则阶乘是所有小于或等于n的正整数的乘积. 阶乘经常用简写符号n!表示! 例如:5!= 1 * 2 * 3 * 4 * 5 = 120 function factorialize(num) { return num; } factorialize(5); 提供

  • 详解Git建立本地仓库的两种方法

    Git是一种分布式版本控制系统,通常这类系统都可以与若干远端代码进行交互.Git项目具有三个主要部分:工作区,暂存目录,暂存区,本地目录: 安装完Git后,要做的第一件事,就是设置用户名和邮件地址.每个Git提交都使用此信息,并且将它永久地烘焙到您开始创建的提交中: $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com 之后我们可以建立一个本地仓库.

  • 详解在python操作数据库中游标的使用方法

    cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetchone()或fetchall()的时候才返回一个元组tuple,才支持len()和index()操作,这也是它是迭代器的原因.但同时为什么说它是生成器呢?因为cursor只能用一次,即每用完一次之后记录其位置,等到下次再取的时候是从游标处再取而不是从头再来,而且fetch完所有的数据之后,这个curs

  • 详解安装Eclipse Maven插件的几种方法

    昨天直接在机器上配置了Maven环境,今天顺便把Eclipse等IDE环境配置好. 安装IDE Plugins的方法有很多.其一:在线安装,通过Help-->Install New Software的方式,输入HTTP地址来安装,简单易操作,但是也优缺点,就是下载速度慢,或者有的时候干脆搜索不到要安装的插件.使用第一种方式来安装,输入 http 地址:http://m2eclipse.sonatype.org/sites/m2e,把选项勾上,然后等待它  下载安装,完成之后重启 eclipse

  • 详解Eclipse安装SVN插件的两种方法

    eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用eclipse 里Help菜单的"Install New Software",通过输入SVN地址,直接下载安装到eclipse里 第一种方式: 1.下载SVN插件 SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.x Links for 1.8.x Release: Eclipse update site URL: http://subclip

随机推荐