• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python 怎么定义计算N的阶乘的函数

    定义计算N的阶乘的函数

    1)使用循环计算阶乘

    def frac(n):
      r = 1
      if n=1:
        if n==0 or n==1:
          return 1
        else:
          print('n 不能小于0')
      else:
        for i in range(1, n+1):
          r *= i
        return r
    print(frac(5))   
    print(frac(6))
    print(frac(7))
    

    120

    720

    5040

    2)使用递归计算阶乘

    def frac(n):
      if n=1:
        if n==0 or n==1:
          return 1
        else:
          print('n 不能小于0')
      else:
        return n * frac(n-1)
      
    print(frac(5))
    print(frac(6))
    print(frac(7))

    120

    720

    5040

    3)调用reduce函数计算阶乘

    说明:Python 在 functools 模块提供了 reduce() 函数,该函数使用指定函数对序列对象进行累计。

    查看函数信息:

    import functools
    print(help(functools.reduce))
    Help on built-in function reduce in module _functools:
    reduce(...)
      reduce(function, sequence[, initial]) -> value
      
      Apply a function of two arguments cumulatively to the items of a sequence,
      from left to right, so as to reduce the sequence to a single value.
      For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
      ((((1+2)+3)+4)+5). If initial is present, it is placed before the items
      of the sequence in the calculation, and serves as a default when the
      sequence is empty.
    

    import functools
    def fn(x, y):
      return x*y
    def frac(n):
      if n=1:
        if n==0 or n==1:
          return 1
        else:
          print('n 不能小于0')
      else:
        return functools.reduce(fn, range(1, n+1))
      
    print(frac(5))
    print(frac(6))
    print(frac(7))
    

    120

    720

    5040

    # 使用 lambda 简写
    import functools
    def frac(n):
      if n=1:
        if n==0 or n==1:
          return 1
        else:
          print('n 不能小于0')
      else:
        return functools.reduce(lambda x, y: x*y, range(1, n+1))
      
    print(frac(5))
    print(frac(6))
    print(frac(7))
    

    120

    720

    5040

    补充:python求n的阶乘并输出_python求n的阶乘

    阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于1808年发明的运算符号,是数学术语。

    一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。

    下面我们来看一下使用Python计算n的阶乘的方法:

    第一种:利用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)
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • python递归函数求n的阶乘,优缺点及递归次数设置方式
    • Python3 实现递归求阶乘
    • python求前n个阶乘的和实例
    • Python阶乘求和的代码详解
    • python3 将阶乘改成函数形式进行调用的操作
    上一篇:如何用python实现复制粘贴功能
    下一篇:Python numpy.power()函数使用说明
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python 怎么定义计算N的阶乘的函数 Python,怎么,定义,计算,的,