Python 阶乘详解

 更新时间:2021年10月04日 14:47:17   作者:科学的海洋  
这篇文章主要介绍了详解用python的阶乘,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

相信大家对阶乘都不陌生。不知道阶乘的可以看这里:

一个数的阶乘:

在这里插入图片描述

比如5的阶乘

在这里插入图片描述

在python中大部分教程一般推荐用递归函数完成:

#!/usr/bin/python3
"""Python2,3都可以"""
def factorial(n):#主体函数
    if n == 1:
        return 1
    return n * factorial(n-1)
res = input("请输入n:")
print(factorial(res))

但是这样不仅阅读不方便,还有可能在n非常大时造成栈溢出的情况。

>>> factorial(1000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in factorial
  File "<stdin>", line 4, in factorial
  File "<stdin>", line 4, in factorial
  [Previous line repeated 995 more times]
  File "<stdin>", line 2, in factorial
RecursionError: maximum recursion depth exceeded in comparison

所以我更倾向于这个:

#!/usr/bin/python
li = []
def factorial(n):
    global li
    result = 1
    for i in range(n):
        li.append(i+1)
    for j in li:
        result = result * j
    return result
print(factorial(int(input("请输入n:"))))

通过单一列表存储,可以有效减少内存使用,并且这个调用只占用几个栈,不会造成溢出。

或者math模块中也有函数可以使用:

import math
a = input("N:")
fac = math.factorial(a)
print(fac)

要么就是非常简单的for:

#中文变量名是合法的!
#中文变量名是合法的!!
#中文变量名是合法的!!!
数 = input("数:")
a = 1
for i in range(1,数+1):
    a = a * i
print(a)

非常容易理解~

参考:https://docs.python.org/3

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • python中15种3D绘图函数总结

    python中15种3D绘图函数总结

    这篇文章主要为大家详细介绍了python中15种3D绘图函数的用法,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09
  • 利用Python实现给图像添加标签

    利用Python实现给图像添加标签

    这篇文章主要为大家详细介绍了如何利用Python实现给指定的图片添加标签,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-07-07
  • Python 绘图和可视化详细介绍

    Python 绘图和可视化详细介绍

    这篇文章主要介绍了Python 绘图和可视化详细介绍的相关资料,需要的朋友可以参考下
    2017-02-02
  • python中的变量如何开辟内存

    python中的变量如何开辟内存

    python中的变量如何开辟内存?今天小编就为大家介绍一下python中变量开辟内存的方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python 解决OPEN读文件报错 ,路径以及r的问题

    Python 解决OPEN读文件报错 ,路径以及r的问题

    今天小编就为大家分享一篇Python 解决OPEN读文件报错 ,路径以及r的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中字符串与编码示例代码

    Python中字符串与编码示例代码

    这篇文章主要介绍了Python中字符串与编码示例代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 浅谈Python中的常用内置对象

    浅谈Python中的常用内置对象

    今天带大家复习Python基础知识,文中对Python常用的内置对象作了非常详细的介绍及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码

    Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码

    在数据可视化中matplotlib.pyplot模块的plot函数是一个非常重要且常用的工具,用于绘制2D图形,这篇文章主要给大家介绍了关于Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码,需要的朋友可以参考下
    2024-03-03
  • 基于Python+Pygame实现变异狗大战游戏

    基于Python+Pygame实现变异狗大战游戏

    只有你想不到,没有我找不到写不了的好游戏!这篇文章就来和大家分享一下如何基于Python+Pygame实现变异狗大战游戏,感兴趣的可以了解一下
    2023-03-03
  • 详解Python安装tesserocr遇到的各种问题及解决办法

    详解Python安装tesserocr遇到的各种问题及解决办法

    这篇文章主要介绍了详解Python安装tesserocr遇到的各种问题及解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论