需求:

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

提问:求1+2!+3!+...+20!的和

实现环境:python3

编辑器:pycharm

分析:1、阶乘的计算就是比较麻烦的一部分,用递归函数实现是比较好的方案,先定义一个递归函数实现求阶乘功能。def recursion(n):

‘定义递归函数实现求阶乘功能‘

if n==1:

return 1

else:

return n*recursion(n-1)

2、求和思路,可以直接求和,也可以定义一个列表将for遍历遍历得到的阶乘结果追加到列表,然后使用sum()函数求和。sum_0=0

print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显

for i in range(1,21):

sum_0 +=recursion(i)

print(sum_0)

列表求和方案:

list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表

print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显

for i in range(1,21):

list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表

print(sum(list)) #列表求和

两者代码行数一样多都可以实现其功能。

使用知识点:递归函数 for循环 range()函数等。

完整源代码以及结果:#/usr/bin/env python

#_*_coding:utf-8_*_

def recursion(n):

‘定义递归函数实现求阶乘功能‘

if n==1:

return 1

else:

return n*recursion(n-1)

list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表

print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显

for i in range(1,21):

list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表

print(sum(list)) #列表求和

sum_0=0

print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显

for i in range(1,21):

sum_0 +=recursion(i)

print(sum_0)

结果:

*****************************将1-20的阶乘写入列表,使用sum函数求和*****************************

2561327494111820313

********************************for循环直接调用递归函数求和*********************************

2561327494111820313

经过验证两者都可以实现基本的功能,但是未测试更大数据量的计算。

原文地址:http://dreamlinux.blog.51cto.com/9079323/1910979

python小代码_python小代码之阶乘求和相关推荐

  1. python使用技巧_python小技巧

    平时开发中,一些使用的技巧,记录一下,持续更新---- 1.当函数默认参数为可变对象时,每次调用函数,是不会重新创建对象的 示例代码1: def ddd(a,b=[]): b.append(a)ret ...

  2. python开发图形小程序_python小程序图画 python开发微信小程序

    你用python写过哪些好玩的微信小程序? 首先要明确一点,python是后台语言,不能直接用python来写微信小程序的. 微信小程序是用javascript和css来写的. python只是用来给 ...

  3. python复利计算_python复利代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 比如在<零基础学编程012:画出复利曲线图>提到的numpy和mat ...

  4. python折叠代码_Python实现代码块儿折叠

    Python实现代码块儿折叠 在python中方法和类都是可以折叠的,但是很多时候需要按照实现的功能将一部分代码折叠起来. 可以用着样的注释代码实现: # ''' your code ''' # 很简 ...

  5. python画画的代码_python画画代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! life is short, just use python.自从08年接触py ...

  6. python五子棋游戏_python小项目之五子棋游戏

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 1.项目简介 在刚刚学习完python套接字的时候做的一个五子棋小游戏,可以在局域网内双人对战,也可以和电脑对战 2.实 ...

  7. python人物代码_Python 超级玛丽代码实现:人物行走和碰撞检测

    功能介绍 人物行走 人物的行走速度这边分成水平方向(X轴)和竖直方向(Y轴),水平方向的速度要考虑加速度和摩擦力,竖直方向的速度要考虑重力加速度.水平方向:设定X轴向右走的速度为大于0,向左走的速度为 ...

  8. python只能用一行代码_Python 一行代码能实现丧心病狂的功能

    手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道 ...

  9. python保存变量_python – 在代码运行之间保存变量的数据

    对于一个学校项目,我正在用 Python制作一个刽子手游戏.现在我的代码从字典中选择一个单词,如下所示: WordList = ["cat", "hat", & ...

  10. python写了代码_Python写代码的用法建议

    1.Mutable and immutable types Python有两种内置或用户定义的类型 可变类型是允许就地修改内容的类型.典型的可变列表是列表和词典:所有列表都有变异方法,如 list.a ...

最新文章

  1. BUUCTF web(一)
  2. 利用jQuery和bootstrap更改radio样式
  3. c语言编程计算人口增长模式转变示意图,读“人口增长模式及其转变示意图”,回答下列问题。(5分)(1)图中字母代表的人口增长模式是:A____________、B____...
  4. 从功能层次,阐述CPU、接口和外设之间的交互
  5. java学习(15):巩固练习
  6. Redis面试常问2-- 从海量数据里查询某一固定前缀的key? SCAN cursor
  7. MySQL数据库查询重复数据办法
  8. Ubuntu 12.04安装及配置vsftp步骤
  9. vue-cli的项目中关于axios的全局配置,结合element UI,配置全局loading,header中做token传输...
  10. 66. 编写高效的 JavaScript
  11. 广告传媒实际税负怎么计算_传媒宣传业增值税税负多少
  12. 【疑难解决】将设备通过Ehome协议接入EasyCVR,级联后视频无法播放如何解决?
  13. zeppelin配置hive教程
  14. 小米笔记本Air13.3扩充硬盘
  15. 随笔---为什么一到选课时教务系统就卡顿甚至登不上去
  16. 华中科技大学计算机叶磊,叶磊-华中科技大学公共卫生学院
  17. Linux基础知识详解
  18. 电信业Hadoop应用分析
  19. 博士员工离职率21.8%,任正非反思:华为这么大,英雄为何无用武之地?
  20. 计算机408王道考研资料、笔记分享 ~ ~

热门文章

  1. Java设计模式(十二)----享元模式
  2. jquery validate的验证规则和验证提示
  3. win7 mysql 启动 问题
  4. shell 截取文件名及扩展名
  5. wsus3.0手工卸载和安装
  6. 微信小程序实战篇:小程序之页面数据传递
  7. asp.net 设置敲回车触发按钮
  8. java利用openoffice转换doc、docx、txt、pptx、xlxs为PDF格式文件
  9. golang panic: assignment to entry in nil map(map赋值前要先初始化 - map的初始化及使用 )
  10. 评微软裁员测试:自动化测试并不能代替人工