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实现每次处理一个字符的三种方法
Oct 09 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
python 将列表中的字符串连接成一个长路径的方法
Oct 23 Python
详解Python的循环结构知识点
May 20 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
Keras设置以及获取权重的实现
Jun 19 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
基于Python实现对比Exce的工具
Apr 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
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
javascript时间函数大全
2014/06/30 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Python基于twisted实现简单的web服务器
2014/09/29 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python批量发送post请求的实现代码
2018/05/05 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
医药营销专业个人自荐信
2013/09/29 职场文书
大学校园活动策划书
2014/02/04 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
会计工作岗位职责
2015/02/03 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书