python使用隐式循环快速求和的实现示例
作者:勤奋的小乌贼 发布时间:2022-10-09 13:04:05
标签:python,隐式循环,求和
如何快速的求出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的等差数列的和。
来源:https://blog.csdn.net/u011699626/article/details/108469690


猜你喜欢
- 这篇文章主要介绍了python 上下文管理器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 一、前言对于一个桌面应用来说,有时候单独一个窗口用户使用起来会不太方便,比方说写日报或者查看文件等,若是在同一窗口内,我只能做一件事,不能边
- 背景最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File R
- WEB标准化之前的互联网是TABLE布局的天下,但随着互联网的高速发展,TABLE布局已经不能满足千变万化的页面所来来的更新压力和服务器压力
- 控制的前提是已经运行Microsip.exe 首先选择文件,选择txt格式文件,一行一个手机号格式;如下点击拨打下一个
- 我们先把数据表建好use test;create table `employee`( emp_no int unsigned, emp_na
- 经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名
- 代码如下: <!-- #include file="../conn.asp" --> <!-- #in
- 基本配置(萌新看,大佬请跳到下一节)1、创建项目点击Create New Project创建新的项目,点击Open打开已有的项目。先选择左侧
- 方法一、使用在父模板中使用{include file="child.tpl"}直接将子模板包含进来优点:1、有利于模块的
- 关于python写邮件各种功能我们已经介绍过很多,大家有兴趣可以参考:python自动化发送邮件实例讲解python实现发送QQ邮件(可加附
- Python 作为当前最热门的编程语言之一,不仅仅是因为它的学习成本低、入门容易,还因为它具有丰富的生态环境,包括内置的模块以及第三方的库,
- 1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/2.点击DOWNLOADS模块下的Community模
- 其实这个问题落伍谈了n次了其中care4也说了两次所以如果你有问题最好先搜索一下 说不定问题早有人解决了http://www.im286.c
- 前言在做自己的项目的时候有用到判断设备是否有切屏,一般用的多的地方就是考试系统,切屏我们都知道,一般可以很容易的进行监控,只不过当开启了小窗
- unplugin-auto-import的配置和eslint报错解决先上官网:unplugin-auto-importunplugin-au
- Insert 和 Update假设现在你要把下面的数据插入到数据库中.ID = 3TheDate=mktime(0,0,0,8,31,200
- 如下所示:import http.client, urllib.parseimport http.client, urllib.parsei
- 1.使用Management Studio Express,用“Windows身份验证”登录,选中SQL服务器名,右击鼠标选择属性,在服务器
- 如何显示已在数据库编码了的相对应的记录?我做了一个歌曲库,在查询中使用了几个下拉菜单供选择条件用,如歌手的性别、区域、爱好等,由于选项太多,