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中正则表达式的用法实例汇总
Aug 18 Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
Python自定义线程类简单示例
Mar 23 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
Python装饰器的应用场景代码总结
Apr 10 Python
django中related_name的用法说明
May 20 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
python selenium 获取接口数据的实现
Dec 07 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP中设置时区方法小结
2012/06/03 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
解析jquery获取父窗口的元素
2013/06/26 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
Python Flask框架扩展操作示例
2019/05/03 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
PyQt5实现画布小程序
2020/05/30 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
鸿星尔克广告词
2014/03/21 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
病假条格式范文
2015/08/17 职场文书
2019同学聚会主持词
2019/05/06 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang