学到了林海峰,武沛齐讲的Day16完

函数嵌套

foo()()() ====  foo()>>>gxr   gxr()>>>wsb    wsb()>>执行wsb函数

lambda   一行的函数,做简单逻辑,计算.

func=lambda x,y,z:x+y+zprint(func(1,2,3))
===6

map函数         处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样

msg='linhaifeng'
print(list(map(lambda x:x.strip("n"),msg))) 将列表中为"n"边""
===['l', 'i', '', 'h', 'a', 'i', 'f', 'e', '', 'g']
filter函数   遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
msg='linhaifeng'
print(list(filter(lambda n:n.strip("n"),msg))) 将列表中为"n"的去掉
=====['l', 'i', 'h', 'a', 'i', 'f', 'e', 'g']  
reduce函数       处理一个序列,然后把序列进行合并操作
from functools import reduce
num_l=range(1,5)
print(reduce(lambda x,y:x*y,num_l,1))      1*1*2*3*4
print(reduce(lambda x,y:x*y,num_l))        1*2*3*4
print(reduce(lambda x,y:x+y,num_l,1))      1+1+2+3+4
print(reduce(lambda x,y:x+y,num_l))        1+2+3+4

24
24
11
10

还有其他内置函数

abs(-1) >>  1  绝对值

all([1,2])>>>Flase    列表里面全是Flase 则是Flase 

any([0,''])>>>True   列表里面全是True 则是True 

bin(3)>>>>0b11  转换2进制 

bool()     布尔值

name='你好'
print(bytes(name,encoding='utf-8'))  bytes>>>>字符串变字节

bytes(name,encoding='utf-8').decode('utf-8')   将name用utf-8解码成字节后,再用utf-8编码成字符

chr(80)  将10进制ASCII转化成字符

dir()   打印对象得到方法

divmod(11,3)>>>>(3,2)   11/3=商3  余2

dic={'name':'alex'}
dic_str=str(dic)
print(dic_str)          字典转换成字符

eval(dic_str)           字符转换成字典

eval('1+1')              将字符串中的计算出来

hash()                不可变类型换成Hash  将一个文件做hash  核对hash后不变,等于没有修改

hex()  16进制

act()   8进制

isinstance('abc',str)  判断'abc'是不是str   结果为bool

globals()  全局变量  

locals()    局部变量 

l=[1,3,100,-1,2]
print(max(l))     最大值
print(min(l))      最小值

以前都是学到这里就卡住了..激动,,下节课就学到没听过的了

猜你喜欢

转载自www.cnblogs.com/gxrwsb/p/11569921.html