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脚本生成随机IP的简单方法
Jul 30 Python
OpenCV实现人脸识别
Apr 07 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
python 调用有道api接口的方法
Jan 03 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Python如何实现强制数据类型转换
Nov 22 Python
python判断正负数方式
Jun 03 Python
如何利用python读取micaps文件详解
Oct 18 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 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 get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
javascript 写类方式之五
2009/07/05 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
python爬虫请求头的使用
2020/12/01 Python
高中生的学习总结自我鉴定
2013/10/26 职场文书
应届护士推荐信
2013/11/16 职场文书
一年级学生期末评语
2014/04/21 职场文书
小学节能减排倡议书
2014/05/15 职场文书
擅自离岗检讨书
2014/09/12 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
小学运动会入场词
2015/07/18 职场文书
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技