博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记(十三)
阅读量:3934 次
发布时间:2019-05-23

本文共 3086 字,大约阅读时间需要 10 分钟。

总结:

函数变量作用域搜索范围:LEGB  从内向外搜索

L:local  本地  局部变量 

E:enclosing  嵌套  外部函数变量

G:global  全局

B:built-in 内置

a=100def func():    a=10    def inner_func():        a=1        print(max)    inner_func()func()'''
'''

——————分割线——————

匿名函数:简化函数定义

格式:lambda 参数1,参数2,...:运算

冒号分割函数和计算

def add(a,b):    s=a+b    return sf=adds = lambda a,b:a+bprint(s)  #结果表明s是一个函数result = s(1,2)print(result)'''
at 0x000002054BF2F040>3'''

匿名函数可以作为参数出现

def func(x,y,func):    print(x,y)    print(func)    s = func(x,y)    print(s)func(1,2,lambda a,b:a+b)'''1 2
at 0x0000028AF958A310>3'''

匿名函数和内置函数结合应用

tip:ctrl+b查看内置函数  或者ctrl+单击鼠标左键

max函数 

list1=[4,1,9,0,3,4]m=max(list1)print('列表的最大值:',m)list2=[{'a':10,'b':20},{'a':13,'b':21},{'a':19,'b':32}]#找每个字典a的最大值#m=max(list2)  TypeError: '>' not supported between instances of 'dict' and 'dict'm=max(list2,key=lambda x:x['a'])'''key=func改变遍历规则,不再直接遍历,而是以key定义的方式遍历元素lambda x:x['a']即为def func(d):    return d['a']'''print('列表的最大值:',m)'''列表的最大值: 9列表的最大值: {'a': 19, 'b': 32}'''

map函数

list1=[4,1,9,0,3,4]result=map(lambda x:x+2,list1)print(result)print(list(result))'''[6, 3, 11, 2, 5, 6]'''

lambda仅仅用于加减乘除操作么?  --->可以结合三元运算符

list1=[4,1,9,0,3,4]func = lambda x:x if x%2==0 else x+1result=func(5)print(result)#用map函数完成result = map(lambda x:x if x%2==0 else x+1,list1)print(list(result))'''相当于  (底层)for index,i in enumerate(list1):    if i%2!=0:        list1[index]=i+1''''''运行结果:6[4, 2, 10, 0, 4, 4]'''

reduce函数  对可迭代中的元素进行加减乘除运算的函数

def reduce(function, sequence, initial=_initial_missing)

特点:函数必须有两个参数

from functools import reducetuple1=(3,2,6,5,7,0)result=reduce(lambda x,y:x+y,tuple1)print(result)tuple2=(3,)  #默认为Noneresult=reduce(lambda x,y:x+y,tuple2)print(result)'''233'''

filter函数    filter(function or None, iterable)--> filter object 返回filter对象    过滤器

list1=[3,2,60,5,73,10]result=filter(lambda x:x>10,list1)print(list(result))'''[60, 73]'''
students = [    {'name': 'tom', 'age': 20},    {'name': ' lucy', 'age': 19} ,    {'name': 'lily', 'age': 13},    {'name' : 'mark', 'age': 21},    {'name' : 'jack', 'age': 23},    {'name':'steven', 'age': 18},]#找出所有年龄大于 20岁的学生result=filter(lambda x:x['age']>20,students)print(list(result))'''[{'name': 'mark', 'age': 21}, {'name': 'jack', 'age': 23}]'''

sorted函数    sorted(__iterable, key, reverse)

students = [    {'name': 'tom', 'age': 20},    {'name': ' lucy', 'age': 19} ,    {'name': 'lily', 'age': 13},    {'name' : 'mark', 'age': 21},    {'name' : 'jack', 'age': 23},    {'name':'steven', 'age': 18},]#按照年龄从小到大排序students=sorted(students,key=lambda x:x['age'])print(students)'''[{'name': 'lily', 'age': 13}, {'name': 'steven', 'age': 18}, {'name': ' lucy', 'age': 19}, {'name': 'tom', 'age': 20}, {'name': 'mark', 'age': 21}, {'name': 'jack', 'age': 23}]   一行上'''

递归函数

普通函数的一种表现形式,特点:函数自己调用自己

特点

1.递归函数必须要设定终点

2.通常会有一个入口,递归次数由入口决定

3.有入口和对应的出口    没出口会无限循环

def f1(n):    if n>0:        print('--->',n)        f1(n-1)    else:        print('--->',n)f1(3)'''---> 3---> 2---> 1---> 0'''

例子:累加

def sum(n):#1~n    if n==0:        return 0    else:        return n+sum(n-1)result=sum(10)print(result)'''55'''

 

转载地址:http://xzegn.baihongyu.com/

你可能感兴趣的文章
学外语的十条经验  
查看>>
闾丘露薇:我的婚姻错在哪
查看>>
挖掘创业机会的七种方式
查看>>
CIO时间>金钱新逻辑:从刷牙洗澡开始
查看>>
中国房价长期暴跌不可避免!
查看>>
10部令人泣不成声的经典电影(多图)
查看>>
一声叹息:高考满分少年为何自杀(附满分作文)?
查看>>
十一五规划解读:房地产健康是十一五的关键
查看>>
zabbix服务器监控(运维)
查看>>
ElasticSearch-SQL 5.5 安装及配置
查看>>
mysql表没有索引,并发的情况下导致CPU飙升
查看>>
Java8 Lambda表达式使用集合(笔记)
查看>>
微服务分布式事务
查看>>
python搭建简易web服务器,局域网
查看>>
mac下载iterm2,以及安装及配置rz sz(转载)
查看>>
12306并发解决思路(转)
查看>>
Mysql之group by GROUP_CONCAT的保证顺序
查看>>
selenium入门--环境搭建
查看>>
Katalon--Mac环境搭建,Mobile之Android调试
查看>>
java调用webservice的2种方式代码
查看>>