一、内置函数
内置函数详解:http://www.runoob.com/python/python-built-in-functions.html
二、匿名函数
匿名函数就是不需要显示的指定函数
1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10))
匿名函数主要用来和其他函数搭配使用
1 l=[3,2,100,999,213,1111,31121,333] 2 print(max(l)) 3 4 dic={'k1':10,'k2':100,'k3':30} 5 6 7 print(max(dic)) 8 print(dic[max(dic,key=lambda k:dic[k])])
# 1 文件内容如下,标题为:姓名,性别,年纪,薪资 # # egon male 18 3000 # alex male 38 30000 # wupeiqi female 28 20000 # yuanhao female 28 10000 with open('b.txt',encoding='utf-8') as f: l1=[{'name':line.split()[0],'sex':line.split()[1], 'age':line.split()[2],'salary':line.split()[3]}for line in f] # 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式 l4=[i['name'] for i in l1] print(list(map(lambda item:item.capitalize(),l4))) # 5 根据1得到的列表,过滤掉名字以a开头的人的信息 l4=[i['name'] for i in l1] print(list(filter(lambda name:not name.startswith('a'),l4)))
三、递归调用
递归特性:
1. 必须有一个明确的结束条件
2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
递归有两个阶段
阶段一:递推
阶段二:回溯