初识函数到正则表达式知识点总结

%:求余数
//:整除
"is"是比较内存地址是否一样 "=="是比较值是否一样


global:在局部对全局变量进行修改
nonlocal:在局部对离自己最近的上一个局部中的变量进行修改
globals():返回全局作用域中的所有名字
locals():返回本地作用域中的所有名字
作用域:函数内部是局部作用域
函数外部是全局作用域

闭包函数:内部函数调用外部函数的变量,就是闭包函数
装饰器:开放封闭原则,对功能扩展是开放的,对修改是封闭的
本质上是一个闭包函数
迭代器:有“__iter__”方法是可迭代对象,
有“__iter__”和“__next__”方法是迭代器
可迭代对象加上“__iter__”方法就会变成迭代器
可迭代对象和迭代器都能直接for循环
生成器和迭代器都是惰性运算,不主动运算,要一个值给一个值
生成器:生成器函数yield,下面接收者就是一个生成器,他有“__iter__”和“__next__”方法,
所以生成器的本质就是迭代器
生成器进阶:send():就是给上一个yield处传一个值,
且第一次必须使用__next__”方法,
最后一次yield不能接受外部的值
yield from:当生成器函数是一个列表的话,可以不用for循环然后yield
可以直接yield from
比如可以不用这种
def generator():
a = "abcde"
for i in a:
yield i
g = generator()
for i in g:
print(i)
而用这种:
def generator():
a = "abcde"
yield from a

g = generator()
for i in g:
print(i)
生成器表达式,放在括号中:g = (i for i in range(1, 11)),
列表推倒式,放在列表中:[i for i in range(1, 11) if i % 2 == 0]
g就是生成器
如果放在列表中,就不是生成器表达式,而是列表推倒式
生成器表达式不占内存,可以用一个取一个,
而列表推倒式一下子生成列表,占内存

内置函数加小知识点:
dir():查看一个对象拥有的方法
help():查看一个对象拥有的方法以及用法
callble():查看对象是变量是一个函数还是一个值
id():一个变量所在的内存地址
"\r":字符串前面加上"\r"回到行首
"\n":字符串后面加上"\n"换行
eveal():执行字符串类型的代码,有返回值
exec():执行字符串类型的代码,没有返回值
abs():绝对值
divmod(x,y):x除以y,得出一个元组,第一个值是商,第二个值是余数
pow(x,y):幂运算,x的y次方
pow(x,y,z):幂运算,x的y次方除以z取余数
round():精确小数取多少位
sum():求和,只能接受可迭代的数据类型
min():有一个key参数,例如可以指定key=abs
reversed():反转,保留原列表,返回一个迭代器
repr():会让一个变量原封不动的打印出来,例如字符串1打印出来就是"1"
frozenset():不可变集合,不可变数据类型
enumerate():枚举,接受一个可迭代对象,list之后得到列表包元组,
元组第一个值是序号,第二个值是可迭代对象中的一个个值
zip():拉链函数
filter():过滤函数
执行之后的结果,列表中的个数 <= 执行前的结果,
filter只管筛选,不会改变原来的值
map():执行之后的结果,列表中的个数=执行前的结果,
值可能会发生改变, 在列表推倒式中使用map,列表推倒式后面没有if条件
sorted():排序,会直接生成一个新列表,而不是生成一个迭代器,
所以占用内存,应该慎用
匿名函数:格式: lambda x: x + 1 冒号前面是函数参数,冒号后面是函数返回值
一提到匿名函数,应该立即联想到内置函数,filter,map,max,min,sorted等

猜你喜欢

转载自www.cnblogs.com/QimiSun/p/9936004.html