1.vs code使用python计算1到500的和

1.一般方法(for /while循环的使用)

for循环

代码实例🌰:

#求1到500的和
#赋初值
sum1=0
for i in range(1,501):
    sum1+=i
print(sum1)

运行结果🌟:

首先定义一个用于计数的变量number和一个作为循环条件的变量none(默认为真),然后书写for循环,在循环体中,将变量numer的值+1,并且判断number的值是否符合条件,当符合条件时,将变量none设置为假,从而得到循环,打印出1+2+3+···+500的结果。

while循环

代码实例🌰:

sum = 0
i = 1
while i<=500:
    sum = sum + i
    i += 1
print("1~500累加和=",sum)

运行结果🌟:

2.高斯方法(数学)

高斯求和公式:和=(首项+末项)x项数÷2

代码实例🌰:

sum2 = 0
n=500
sum2 = (1+n)*n/2
print(sum2)

运行结果🌟:

3.编写一个函数

代码实例🌰:

def func(n):
    sum = 0;
    for i in range(1,n+1):
        sum += i
    return sum
b = func(500)
print(b)

运行结果🌟:

​​​​​​​

4.使用python内置函数

法一(sum):

创建一个列表,其中包含数字1~500【使用min()和max()函数验证该列表从1开始并且到500结束】

对这个列表调用函数sum():

num = [value for value in range(1,501)]
sum = sum(num)
print(sum)

运行结果4.1.1:

 代码4.1.2:

num = [value for value in range(1,501)]
print(min(num))
print(max(num))
sum = sum(num)
print(sum)

运行结果4.1.2:

代码4.1.3:

print("计算1~500的和:",sum(list(range(1,501))))

运行结果:

法二(reduce)+(lambda):

在python3中,内置函数已经没有reduce()了,如需使用reduce(),需要从functools模块里引入

from functools import reduce
print("计算1~500的和为:",reduce(lambda a,b:a + b,list(range(1,501))))

运行结果4.2:

5.使用装饰器复用该函数实现任意1···n的求和

python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。

预备知识:

Python中的装饰器及@用法详解_tyhj_sf的博客-CSDN博客_python注解和装饰器​​​​​​​

python装饰器语法糖_Python_日记 装饰器和语法糖_weixin_39881958的博客-CSDN博客

python函数装饰器的实现_python 函数的深入理解与装饰器实现_杨松圣的博客-CSDN博客

什么是高阶函数?

把函数名当作参数传给另外一个函数,在另外一个函数中通过参数调用执行。

什么是装饰器?

在不改变源代码的基础上扩展新需求,装饰器本身也是函数,应用高阶函数实现;

把被装饰的函数内存地址当参数传入装饰器函数体,通过参数调用被装饰的函数。

装饰器原则:

1.不改变源代码---函数也会在其他地方调用;

2.不改变原函数调用顺序---源代码有自己的逻辑处理。

装饰器逻辑格式?

高阶函数+嵌套函数

代码实例🌰:

自己的理解:装饰器相当于用函数嵌套函数

装饰器复用函数就是第一层函数循环调用第二层函数

#这两个都是全局变量,这样在函数调用时值也会改变
a=0
count=0
def wapper(func):
    def innner(*args,**kwargs):
        global count
        n=500 #这里是需要修改的n值,即求和上限
        while count<n: #n为几就循环几次,也就是复用
            count += 1
            ret=func(*args,**kwargs) #这里调用func()函数
            if count==n:    #最后一次输出结果
                print(ret)

    return innner
@wapper
def func():
    global a
    a+=count
    return a

func()

运行结果🌟:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值