Python阶乘求和的方法

题目描述:

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

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

(推荐学习:Python视频教程)

方法一:#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阶乘求和的方法相关推荐

  1. python中bd是什么属性_python数据类型及其特有方法

    一.运算符 in方法 "hello" in "abcdefghijklmnopqrstuvwxyz" "li" in ["gg&q ...

  2. python中mean算函数吗_Python numpy.mean函数方法的使用

    numpy.mean numpy.mean(a, axis=None, dtype=None, out=None, keepdims= 沿指定轴计算算术平均值. 返回数组元素的平均值.默认情况下,平均 ...

  3. python中cos函数怎么用_Python cos() 函数 | 使用方法 入门教程 基础教程

    Python cos() 函数 描述 cos() 返回x的弧度的余弦值. 语法 以下是 cos() 方法的语法: import math math.cos(x) 注意:cos()是不能直接访问的,需要 ...

  4. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  5. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  6. 怎么把竖列中的数相加python_关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码...

    pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这篇文章主要给大家介绍了关于python中pandas.DataFrame对行与列求和及添加新 ...

  7. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  8. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  9. python中格式化字符串的使用_Python中的格式化字符串

    Python中的格式化字符串方法: 在学习了一段时间的Python之后,回过头来看书的时候,发现Python中最简单的关于格式化输出字符串的方法也有多种,而这并不是类似于茴香豆的"茴&quo ...

最新文章

  1. 编程中经常碰到且觉得难的事是什么?
  2. ajax requestbody传值,ajax POST方法调用后@RequestBody属性为空
  3. Oracle 10.2.0.5 非归档current redolog损坏处理一例
  4. [css] 说下line-height三种赋值方式有何区别?
  5. Retrofit的使用教程(二)
  6. CentOS上安装man手册
  7. Sqoop导入数据--split by 和 --m(大于1)配合使用
  8. 3-13 图片几何变换小结
  9. thinkphp 2.x 任意代码执行
  10. 高项47个过程及输入、输出、工具解释
  11. FAQ01【Hadoop】:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  12. 解决Visual Studio 2015创建工程时的“DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' failed to install.”错误
  13. sequencer和driver
  14. Flutter PullToRefresh上下拉刷新控件
  15. python的开发者太负责任了_人生苦短,我用 Python
  16. windows和ubuntu双系统,ubuntu下硬盘变成只读状态,无法粘贴文件的有效解决方法
  17. PLC通过智能网关 MQTT对接阿里云(带CA证书加密),实现物模型数据显示
  18. 解决数值输入框可以输入字母E的问题
  19. RHEL6.0系统自动安装之PXE
  20. 四点流程做好商机管理

热门文章

  1. JVM StackOverFlowError
  2. 软考中级过了就是中级职称吗?
  3. STM32定时器-6步PWM输出
  4. 民宿OTA运营有哪些指标数据最重要
  5. SystemInfo
  6. 【Image Matting】Image Matting评价指标
  7. PS--怎么取消之前选择的工具?
  8. 为什么你的工具类APP用户量不少,却难以找到变现模式?
  9. 巴士博弈hdu1846
  10. 史上最全的Web安全相关网址汇总【转帖】