内置函数
截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。
abs() 取绝对值 | dict() 把数据转成字典 | help() | min()取列表里最小值 | max()取列表里最大值 |
all() 集合里数据都是真则返回True,否则返回False | any()列表里有一个为真则返回True | dir()打印当前程序里的所有变量 | hex()将一个数转成十六进制 | divmod()取两个数相除的商的整数部分和余数 |
sorted()自定义排序规则 | oct()转换成八进制 | bin() 转换成二进制 | ord()返回一个值在ASSII码中的位置 | chr()将一个数字转换成ASSII中对应的值 |
sum()求列表中所有数据的和 | tuple()转换成元组 | callable()判断是否可调用 | froznset()将一个集合变成一个不可变得集合 | vars()将程序中所有变量及其值打印出来 |
locals()打印函数中的局部变量 | globals()打印函数的全局变量 | set()将列表变成集合 | ||
内置函数简单分为6大类:
1、作用域相关
基于字典的形式获取局部变量和全局变量
globals()——获取全局变量的字典
locals()——获取执行本方法所在命名空间内的局部变量的字典
2、其他
1、eval()和exec():
eval() 将字符串类型的代码执行并返回结果
exec()将自字符串类型的代码执行
# eval()
s = '1+2+3+4'
a = eval(s)
print(a)
输出结果:10
# exec()
b = exec(s)
print(b)
输出结果:None
1、 eval()和exec()都可将字符串转换成代码执行
2、 eval()只能执行单行字符串的代码,exec()可以执行多行字符串的代码
3、 eval()执行的代码有返回值,而exec()执行的代码没有返回值
2、数据类型相关:
type() 返回变量的数据类型
3、内存相关:
id() 返回一个变量的内存地址
hash() 返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。
hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。
3、和数字相关
c = 1/3
print(round(c,6)) # 6表示要保留6小位数
输出:0.333333
a = 6
b = 4
print(divmod(a,b)) # 结果为(1,2)其中1代表商,2代表余数
输出:(1, 2)
d = 5
print(pow(d,3)) # 其中3代表求取5的3次幂
输出:125
f = [2,2,3,4]
print(sum(f)) # sum()函数括号里面的必须为可迭代对象
输出:11
l = [3,1,2,2]
h = min(f,l) # 如果是两个列表,只比较列表第一个元素大小
print(h)
输出:[2, 2, 3, 4]
匿名函数
当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
# 这段代码
def calc(n):
return n ** n
print(calc(10))
# 换成匿名函数
calc = lambda n: n ** n
print(calc(10))
函数名 = lambda 参数 :返回值
#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型
1、使用Python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
2、对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要考虑命名的 问题。
3、使用lambda在某些时候然后代码更容易理解 。