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)  都是把列表变成迭代器

 

posted @ 2018-12-16 14:43  爱跑步的乌龟  阅读(216)  评论(0编辑  收藏  举报