Python阶乘求和的代码详解


Posted in Python onFebruary 14, 2020

Python阶乘求和的方法

题目描述:

获得用户输入的整数n,输出 1!+2!+…+n!的值。

如果输入数值为0、负数、非数字或非整数,输出提示信息:输入有误,请输入正整数。

方法一:

#factTest1

def main():

  a = input()

  sum = 0

  if a.isdigit():

    n = eval(a)

    if n > 0:

      fact = 1

      for i in range(1, n+1):

        fact *= i

        sum += fact

      print(sum)

    else:

      print("输入有误,请输入正整数")

  else:

    print("输入有误,请输入正整数")

main()

方法二:递归思想

#factTest2

import sys

sys.setrecursionlimit(5000)

def getSum(i):

  sum = 0

  if i==0:

    return 0

  else:

    for x in range(1,i+1):

      sum += fact(x)

    return sum

def fact(m):

  if m==0:

    return 1

  else:

    return m*fact(m-1)

def main():

  n = input()

  if n.isdigit():

    a = eval(n)

    if a>0:

      result = getSum(a)

      print(result)

    else:

      print("输入有误,请输入正整数")

  else:

    print("输入有误,请输入正整数")

main()

问题总结:

当使用递归方法求1024的阶乘时,出现了一个异常:RecursionError: maximum recursion depth exceeded in comparison,超出了递归的最大深度。一些网友提到Python中默认的最大递归深度为1000,但在实际测试中,我的电脑到997的时候就出现异常了,不知道这是由什么决定的。因此,为了能够计算1024的阶乘,需要为最大递归深度赋予一个更大的值。这里可以采用以下方法:

import sys

sys.setrecursionlimit(5000) #修改为5000

另外,也可以查看最大递归深度:

import sys

sys.getrecursionlimit() # output:1000

以上就是Python阶乘求和的方法的详细内容,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
python实现端口转发器的方法
Mar 13 Python
python制作最美应用的爬虫
Oct 28 Python
Python ldap实现登录实例代码
Sep 30 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
python的socket编程入门
Jan 29 Python
python实现图片文件批量重命名
Mar 23 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
Python实现12306火车票抢票系统
Jul 04 Python
简单了解Python读取大文件代码实例
Dec 18 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
Python更改pip镜像源的方法示例
Dec 01 Python
Python pip配置国内源的方法
Feb 14 #Python
Python3基本输入与输出操作实例分析
Feb 14 #Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 #Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 #Python
pytorch实现MNIST手写体识别
Feb 14 #Python
Python3.7实现验证码登录方式代码实例
Feb 14 #Python
Python逐行读取文件内容的方法总结
Feb 14 #Python
You might like
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
Javascript的并行运算实现代码
2010/11/19 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
python挖矿算力测试程序详解
2019/07/03 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
军训 自我鉴定
2014/02/03 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
楚门的世界观后感
2015/06/03 职场文书
在职证明范本
2015/06/15 职场文书
聘用合同范本
2015/09/21 职场文书