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获取当前时间的方法
Jan 14 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
Python学习小技巧之列表项的拼接
May 20 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
python flask几分钟实现web服务的例子
Jul 26 Python
python pycharm的安装及其使用
Oct 11 Python
Python多进程编程常用方法解析
Mar 26 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
python 实用工具状态机transitions
Nov 21 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
angular分页指令操作
2017/01/09 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
Python with的用法
2014/08/22 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Django中Model的使用方法教程
2018/03/07 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
大学军训感言1000字
2014/02/25 职场文书
《四季》教学反思
2014/04/08 职场文书
个人综合鉴定材料
2014/05/23 职场文书
社区国庆节活动总结
2015/03/23 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫