考点:递归(自己调自己,必须有结束条件,所有能用递归解决的问题都能用fou循环解决)
def func(start,end,a = 0,b = 0):
if start == end:
return
if start%3 == 0 and start%7 == 0:
a += 1
b += start
ret = func(start+1,end,a,b)
return ret
print(func(1,22)) #貌似有问题
# break:结束当前循环
# continue:结束本次循环
# return:结束函数
#函数传递参数是引用还是复制值?并证明
name = 'hhh'
def show():
print(id(name))
print(id(name))
show()
#------------------------------
#阶层都是倒着来的,从最大到最小
#------------------------------
#实现1*2*3*4*5
from functools import reduce
print(reduce(lambda x,y:x*y,[x for x in range(1,9)]))
def f(n):
if n == 1:
return 1
return n*f(n-1)
print(f(8))
猴子吃桃算术
s = 1
func = lambda x:(x+1)*2
for i in range(9):
s = func(s)
print(s)
def funcx(x,day):
day -= 1
if day == 0:
return x
x = (1+x)*2
ret = funcx(x,day)
return ret
print(funcx(1,10))
l = [1,2,3]
l.__iter__() #iter(l) 都是把列表变成迭代器