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中的闭包实例详解
Aug 29 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
Python如何优雅获取本机IP方法
Nov 10 Python
Python语言异常处理测试过程解析
Jan 08 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
如何理解python接口自动化之logging日志模块
Jun 15 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
php学习笔记之基础知识
2014/11/08 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
整理Python最基本的操作字典的方法
2015/04/24 Python
pandas中的series数据类型详解
2019/07/06 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
决心书范文
2014/03/11 职场文书
对标管理实施方案
2014/03/12 职场文书
情人节活动总结范文
2015/02/05 职场文书
优秀党员个人总结
2015/02/14 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python