递归、二分法、匿名函数和部分内置方法

Posted on 2019-07-13 10:27  jinpan  阅读(81)  评论(0编辑  收藏  举报

递归

定义:

函数的嵌套调用是:函数嵌套函数。函数的递归调用:它是一种特殊的嵌套调用,但是它在调用一个函数的过程中,又直接或间接地调用了它自身。

如果递归函数不断地调用函数自身,那么这个递归函数将会进入一个死循环,因此我们应该给递归函数一个明确的结束条件。

 

递归必须要有两个明确的阶段:

  1. 递推:一层一层递归调用下去,进入下一层递归的问题规模都将会减小
  2. 回溯:递归必须要有一个明确的结束条件,在满足该条件开始一层一层回溯。

 

递归次数

递归的次数为997 ,但可以用操作设置python运行环境的sys 来获得或者设置递归次数

import sys

#然后设置相关的递归次数

sys.getrecursionlimit()

sys.setrecursionlimit()

 

 

为什么用递归

递归的本质就是干重复的活,但是仅仅是普通的重复,我们使用while循环就可以了。递归的循环都是有目的性的

 

普通递归例子

 

 

 

二分法列子

 

 

 三元二次表达式

三元表达式固定表达式
    值1 if 条件 else 值2
        条件成立 值1
        条件不成立 值2

 


列子:

 


 

 

列表生产式

意会理解例子

 

列表生产式和三元表达式的结合

 

 

字典生产式

 意会列子

print({i: i**2 for i in range(10)})

 

普通2列表转化字典列子:

 

 

列表生产表达式注意点:

 

字典表达式小例子:

 

 

 

匿名函数 

没有名字的函数
匿名函数的特点
临时存在用完就没了

匿名函数结构

# :左边的相当于函数的形参
# :右边的相当于函数的返回值
# 匿名函数通常不会单独使用,是配合内置函数一起使用


意会列子:

 

 

部分内置函数以及与匿名函数的结合

意会列子~~~~~

char()

 

 max()   min()

 

 

 map()

 

 zip()

 

filter()

 

 sort()

 

Copyright © 2024 jinpan
Powered by .NET 8.0 on Kubernetes