Python--练习题
考点:递归(自己调自己,必须有结束条件,所有能用递归解决的问题都能用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) 都是把列表变成迭代器