python使用隐式循环快速求和的实现示例


Posted in Python onSeptember 11, 2020

如何快速的求出1到x的和呢?代码如下:

NB(注意): # 后面的部分表示输出结果。

class Debug:
  def calculateSum(self, size):
    return sum(range(size))


if __name__ == "__main__":
  main = Debug()
  result = main.calculateSum(101)
  print(result)          # 5050

 这里我们想要求出1-100的和,因为range(101)最后的值是100,所以range()的参数应该取101而不是100,1到100的和我们早已耳熟能详,答案是5050。可以看到我i们使用sum()和range()函数的组合就求出了1-100的和,这里其实是运用了for的隐式循环.。严格地说此段代码实际上计算的是0-100的和,但是因为0并不影响最终求和的结果,故这里可以等同为1-100的和。上述代码和下面的代码等效。代码如下:

class Debug:
  def calculateSum(self, size):
    _sum = 0
    for i in range(size):
      _sum += i
    return _sum


if __name__ == "__main__":
  main = Debug()
  result = main.calculateSum(101)
  print(result)          # 5050

我们知道,range(101)的结果为range(0, 101),想要获取它的展开形式我们需要用list进行转换并查看,因此当我们使用sum()函数对其进行求和运算的时候,事实上是遍历了它中间的每一个元素,也就是使用了隐式循环。

print(range(101))  # range(0, 101)
print(list(range(101)))
"""
result :
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
"""

那么进一步我们可不可能将快速求和进行推广呢?是可以的,我们可以用此种方法计算出任意的等差数列的和。代码如下:

class Debug:
  def calculateSum(self, start, end, gap):
    return sum(range(start, end, gap))


if __name__ == "__main__":
  main = Debug()
  result = main.calculateSum(0, 101, 2)
  print(result)          # 2550

这里我们计算了0-100中差值为2的等差数列的和。

到此这篇关于python使用隐式循环快速求和的实现示例的文章就介绍到这了,更多相关python 隐式循环快速求和内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的Flask框架中web表单的教程
Apr 20 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
获取Django项目的全部url方法详解
Oct 26 Python
python用户评论标签匹配的解决方法
May 31 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
Django中多种重定向方法使用详解
Jul 17 Python
Python测试模块doctest使用解析
Aug 10 Python
python代码如何实现余弦相似性计算
Feb 09 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
Python开发五子棋小游戏
May 02 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 #Python
降低python版本的操作方法
Sep 11 #Python
Django crontab定时任务模块操作方法解析
Sep 10 #Python
Django日志及中间件模块应用案例
Sep 10 #Python
Django nginx配置实现过程详解
Sep 10 #Python
使用Python操作MySQL的小技巧
Sep 10 #Python
python编写实现抽奖器
Sep 10 #Python
You might like
php 在线打包_支持子目录
2008/06/28 PHP
php中对2个数组相加的函数
2011/06/24 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
在Django中使用Sitemap的方法讲解
2015/07/22 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python实现支付宝转账接口
2019/05/07 Python
python制作朋友圈九宫格图片
2019/11/03 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
Python 操作 MySQL数据库
2020/09/18 Python
实习自我评价怎么写
2013/12/02 职场文书
会务接待方案
2014/02/27 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
情况说明书怎么写
2015/10/08 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL
pt-archiver 主键自增
2022/04/26 MySQL
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang