递归,匿名函数,简单算法


递归函数

什么是递归函数,递归函数就是在在自身内部调用或者在别的函数内部调用自己实现循环就叫递归函数,递归函数有回溯和递推的功能。

def index():
    print('form index')
    index()

index()

在递归函数中一定要有结束条件,要不然会进入死循环,最后达到最大递归深度,在python中,最大递归函数是1000。

什么是结束条件,就是在运行此函数的过程中,加入一个固定值,在循环多少次之后就会结束。例如:

def age(n):
    if n == 1:
        return 18
    return age(n - 1) + 2

print(age(2))
l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, ]]]]]]]]]]


def name(n):
    for i in n:
        if type(i) is int:
            print(i)
        else:
            name(i)


name(l)

三元表达式

用更加简便的方法来写出代码。

a = 16
b = 18
print(a if a > b else b)

算法之二分法

用二分法来判断一个数是否在其中

l = [1, 2, 3, 4, 5, 66, 77, 55, 44, 33]
l.sort()


#  取出列表中间的数,进行判断
def size(n, m):
    middle = len(m) // 2
if len(m) == 0:;
     return if n > m[middle]: m_light = m[middle:] size(n, m_light) print(m_light) elif n < m[middle]: m_lift = m[:middle] size(n, m_lift) print(m_lift) else: print('对了') size(66, l)

列表生成式

能快速在一个列表中修改值

l = ['bxf', 'cx', 'zt']
print([i + 'dsb' if i != 'zt' else i for i in l ])

字典生成式

能快速将两个列表拼接成一个字典

l = ['name', 'age', 'hobby']
n = ['bxf', 18, 'python']
print({v: n[i] for i, v in enumerate(l)})

匿名函数

匿名函数一般是结合内置函数中使用的,使用方法:lambda+函数变量:返回值

l = [1, 2, 3, 4]
print((lambda n: n + 1)(2))

print(list(map(lambda x: x + 1,l)))