内置函数与匿名函数
内置函数
内置函数是python提供的可以直接调用的函数,截至版本3.6.2,python一共有68个内置函数,根据作用不同可以分为作用域相关、迭代器生成器相关、基础数据类型相关和其他
作用域相关
locals(): 以字典的形式返回当前作用域内的内容
globals():以字典的形式返回全局作用域内的内容
迭代器生成器相关
range: 创建一个整数对象,通常用于for循环
next: 内部实际使用了__next__方法,返回迭代器的下一个项目
基础数据类型相关
1. 数字相关
bool: 将给定参数转化成bool类型,如果没有参数返回False
int: 将字符串和数字转化成整型,int有三点需要注意
(1) int转化浮点数是向0取整,int(2.8) = 2, int(-3.9) = -3
(2) int("0b1101", base=2) = 13,base=2表示字符串中的数字以二进制表示
(3) int("hey", base=35) = 21349,base=35表示字符串中的数字以35进制表示,这里的有效base范围为2~36(10+26)
2. 数学运算
abs:函数返回数字的绝对值。
divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
round:保留浮点数的小数位数,默认保留整数。
pow:求x**y次幂。(三个参数为x**y的结果对z取余)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print(abs(-5)) # 5 print(divmod(7,2)) # (3, 1) print(round(7/3,2)) # 2.33 print(round(7/3)) # 2 print(round(3.32567,3)) # 3.326 print(pow(2,3)) # 两个参数为2**3次幂 print(pow(2,3,3)) # 三个参数为2**3次幂,对3取余。
sum:对可迭代对象进行求和计算(可设置初始值)。
min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print(sum([1,2,3])) print(sum((1,2,3),100)) print(min([1,2,3])) # 返回此序列最小值 ret = min([1,2,-5,],key=abs) # 按照绝对值的大小,返回此序列最小值 print(ret) dic = {'a':3,'b':2,'c':1} print(min(dic,key=lambda x:dic[x])) # x为dic的key,lambda的返回值(即dic的值进行比较)返回最小的值对应的键 print(max([1,2,3])) # 返回此序列最大值 ret = max([1,2,-5,],key=abs) # 按照绝对值的大小,返回此序列最大值 print(ret) dic = {'a':3,'b':2,'c':1} print(max(dic,key=lambda x:dic[x])) # x为dic的key,lambda的返回值(即dic的值进行比较)返回最大的值对应的键
3. 数据结构
总结
匿名函数
来看一个函数
def func(x, y): return x + y print(func(3, 4))
像这样函数体只有return语句的函数可以改写成一行的匿名函数(lambda),如下
func2 = lambda x, y: x + y
下面来写一个匿名函数,传入三个参数,返回三个数相乘的结果
func = lambda x, y, z: x*y*z
总结一下,匿名函数的特点:
1. 只有返回值的函数可以用lambda函数代替
2. 匿名函数只能用一行
3. 匿名函数的语法为lambda 参数1,参数2,... : 返回值
4. 匿名函数多与内置函数相结合