函数基础:
1.内置函数:
作用域相关:locals(),globals()
迭代器/生成器相关:range(),next(),iter()
数据类型相关:bool(),int(),float(),complex()
进制转换:bin() 二进制,oct() 八进制,hex() 十六进制
数学运算:abs(),divmod(),round(),pow(),sum(),min(),max()
和数据结构相关:
a.数据集合:字典:dict(); 集合:set(),frozenset()
b.相关内置函数:len(),sorted(),zip(),filter(),map(),enumerate(),all(),any()
序列:
a.列表和元组:list,tuple
b.相关内置函数:reversed(),slice
c.字符串串:str(),format(),bytes(),repr(), bytearray(),memoryview(),
ord(),chr(),ascii()
其他:
a.输入和输出:input(),print()
b.内存相关:hash(),id()
c.文件操作相关:open()
d.模块相关:import
e.帮助:help()
f.调用相关(可以区分函数和普通变量) callable()
g.查看内置属性:dir()
h,字符串类型代码的执行:eval(),exec(),compile()
面向对象相关:
type,object,classmethod,staticmethod,property,vars(),super,
issubclass(),isinstance()
反射相关: hasattr(),getattr(),setattr(),delattr()
内置函数官方文档 :https://docs.python.org/3/library/functions.html
2.定义函数:
定义一个函数要是用def语句,依次写出函数名,括号,参数以及:,函数的返回值用return表示, 函数一旦执行到return时,函数就要执行完毕,并将结果返回;如果没用return语句,函数执行完成会返回None
def func():
return("hello,python")
print(func()) #调用函数
函数名就是一个变量名,可以进行赋值,可以作为参数,可以作为返回值,还可以作为集合类的元素
3.参数:给函数传递的信息
分类:位置参数,关键字参数,混合参数(位置在前,关键字在后)
顺序:位置参数,*args,默认值参数,**kwargs
a.形参:在函数声明的位置定义的变量
分类:位置参数
默认值参数
动态传参:动态接受位置参数 *args,动态接受关键字参数 **kwargs
b.实参:在函数调用的时候给函数传递的具体的值
传参:把实参传递给形参的过程叫传参
4.名称空间:
a.内置名称,b.全局名称,c.局部名称
5.作用域:
a.全局作用域
b.局部作用域
globals() 查看全局作用域中的内容
locals() 查看当前作用域的内容
global 在局部引入全局变量,创建全局变量
nonlobal 在局部,引入离他最近的上一个变量
6.函数的嵌套:
def func():
def inner():
pass
return inner()
7.闭包:在内层函数访问外层函数中的变量,最好是返回函数
作用:
a.保护变量不被更改,
b.可以让一个变量常驻内存
def func():
a = 10
def inner():
return a
return inner()
8.迭代器:可迭代对象:在数据类型中包含了_iter_
迭代器;访问_iter_可以获取到该数据类型的跌迭代器,包含_iter_和_next_
特点:a.省内存 b.惰性机制 c.只能向前
9.生成器:
a.生成器的本质是迭代器
b.生成器有三种方式来创建:
1.生成器函数 2.生成器表达式 3.类型转换(range())
c.生成器函数:生成器函数中包含yield yield表示返回,可以分段的执行函数
生成器函数在被调用的时候,获取生成器,而不是执行函数
def func():
yield xxx
func() #获取迭代器
生成器的使用:(1). _next_() 执行下一个yield
(2). send() 可以给上一个yield传值;yield from:把一个可迭代对象转换成生成器
生成器表达式: (结果 for if)