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函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。
什么是高阶函数?
把函数名当作参数传给另外一个函数,在另外一个函数中通过参数调用执行。
什么是装饰器?
在不改变源代码的基础上扩展新需求,装饰器本身也是函数,应用高阶函数实现;
把被装饰的函数内存地址当参数传入装饰器函数体,通过参数调用被装饰的函数。
装饰器原则:
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()
运行结果🌟: