题目描述:

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

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

方法一:

#factTest1
def main():a = input()sum = 0if a.isdigit():n = eval(a)if n > 0:fact = 1for i in range(1, n+1):fact *= isum += factprint(sum)else:print("输入有误,请输入正整数")else:print("输入有误,请输入正整数")
main()

方法二:递归思想

#factTest2
import sys
sys.setrecursionlimit(5000)
def getSum(i):sum = 0if i==0:return 0else:for x in range(1,i+1):sum += fact(x)return sum
def fact(m):if m==0:return 1else: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的阶乘求和相关推荐

  1. python 与或非_Python |Python 从入门到精通(放弃)之注释、行与缩进、多行语句...

    PYTHON 本期主要讲"注释"."行与缩进"."多行语句" 入门常识:敲代码必须用英文键盘,里面的各种标点符号都是英文类型的,否则会报错. ...

  2. python里的非_python中逻辑非

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python逻辑运算的简介以及使用~ 逻辑运算在程序开发中,通常 在判断条件时, ...

  3. python中的阶乘求和公式_Python阶乘求和的方法

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1! 2! - n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. (推荐学习:Python ...

  4. python奇数阶乘求和_Python阶乘求和的方法

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1!+2!+-+n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. 方法一:#factTes ...

  5. python 运算阶乘的代码_Python阶乘求和的代码详解

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1!+2!+-+n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. 方法一: #factTe ...

  6. python阶乘求和的代码_Python阶乘求和的代码详解

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1!+2!+-+n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. 方法一: #factTe ...

  7. python阶乘求和的流程图解_Python阶乘求和的方法

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1!+2!+-+n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. (推荐学习:Python ...

  8. python递归函数1到n求和_python代码之阶乘求和的方法

    需求: 阶乘:也是数学里的一种术语:阶乘指从1乘以2乘以3乘以4一直乘到所要求的数:在表达阶乘时,就使用"!"来表示.如h阶乘,就表示为h!:阶乘一般很难计算,因为积都很大. 提问 ...

  9. python奇数阶乘求和_使用Python阶乘求和的方法及问题总结

    使用Python阶乘求和的方法及问题总结 发布时间:2020-04-28 09:23:14 来源:亿速云 阅读:190 作者:小新 本篇文章和大家了解一下使用Python阶乘求和的方法及问题总结.有一 ...

最新文章

  1. 深度学习在图像超分辨率重建中的应用
  2. dao模式和前端控制器结合使用_前端技术及开发模式的演进,带你了解前端技术的前世今生...
  3. C++11系列学习之三----array/valarray
  4. 第八节:语法总结(2)(匿名类、匿名方法、扩展方法)
  5. java 内存指针_C指针和内存
  6. android图标成功,Android多启动图标实现
  7. C++ main函数的几点细节(转载)
  8. paip.提升安全性-----使用HTTPS SSL
  9. Linux系统p4vasp使用教程,科学网—p4vasp on Linux - 单光存的博文
  10. MySql服务无法连接
  11. 基于(7,4 ) 线性分组码编码和 BPSK 调制
  12. vmware 虚拟机安装苹果系统
  13. 三菱fx3uplc恢复出厂设置_清除三菱FX系列PLC密码的三种方法
  14. golang下文件锁的使用
  15. WPF开发经验-实现Win10虚拟触摸键盘
  16. 关于美元中 单位 换算 English
  17. 在ESNP中还原内网私接小路由器导致用户无法上网场景
  18. STM32串口导致电脑鼠标乱飞的解决办法
  19. java获取excel嵌入对象_EXCEL,使用嵌入对象(.dot)作为报告模板
  20. JavaScript如何查找和访问HTML页面中的HTML元素

热门文章

  1. Spring学习总结(1)- IOC
  2. iOS用户体验之-导航之道
  3. 寒假培训1.20 位运算
  4. oracle 字典表查询
  5. web前端自动化测试工具phantomjs的使用笔记
  6. php header()的用法
  7. Solr相关概念详解:SolrRequestHandler
  8. 拦截器和过滤器区别_新手能看懂的(Interceptor)和(Filter)区别与使用!
  9. html显示当前时间_HTML基础教程:超链接的使用
  10. html下拉框设置默认值_html 里select 下拉列表中设置默认值怎么写