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脚本实现格式化css文件
Apr 08 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
python实现抠图给证件照换背景源码
Aug 20 Python
Python如何实现的二分查找算法
May 27 Python
如何写python的配置文件
Jun 07 Python
python 实现单例模式的5种方法
Sep 23 Python
一些让Python代码简洁的实用技巧总结
Aug 23 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
PHP实现简单日历类编写
2020/08/28 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
python面向对象 反射原理解析
2019/08/12 Python
python实现TCP文件传输
2020/03/20 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
基于python实现坦克大战游戏
2020/10/27 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
PHP经典面试题
2016/09/03 面试题
入党申请书自我鉴定
2013/10/12 职场文书
我未来的职业规划范文
2014/01/11 职场文书
护士辞职信范文
2014/01/19 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
社区戒毒工作方案
2014/06/04 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
汽车销售员工作总结
2015/08/12 职场文书
python之django路由和视图案例教程
2021/07/26 Python