day13-01 Python的内置函数
2020-08-18 本文已影响0人
代码小小白
内置函数
- python一共提供了68个内置函数
- 不太常用:
- eval:剥去函数的外衣运算里面的代码
s= "1+3"
print(s) # 输出"1+3"
print(eval(s)) # 输出4
不建议使用,因为在网路传输,input输入时候,容易被黑客拦截,植入病毒代码
- exec:exec 与eval几乎一样, 代码流
msg = "for i in range(10):print(i)"
print(msg) # 输出for i in range(10):print(i)
print(exec(msg))
# 输出
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
- hash:计算哈希值
- callable:判断一个对象是否可调用
- help:查看帮助,help(str)
- int
- float
- complex: 复数
- bin: 将十进制转化成二进制
- oct :将十进制转化成八进制
- hex: 将十进制转化成十六进制
- divmod: divmod(x, y) 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组,计算分页的时候用到
print(divmod(10,3)) # 输出:(3, 1) 商3余1
- round:保留浮点几位小数
- pow:求x的y次幂(x**y,当传三个参数时,求x的y次幂对z取余)
print(pow(2,4)) # 输出:16
print(pow(2,4,5)) # 输出:1 (余数)
- bytes:
s1 = '早上'
b = s1.encode('utf-8')
a = bytes(s1, encoding='utf-8') # 上下两个效果一样,以utf-8编码的形式进行编码
- ord:输入字符找该字符编码的位置
- repr:返回一个对象的string格式(带有“”)
s1 = '早上'
print(repr(s1)) # 输出'早上',带有引号
# 格式化输出
print("现在是%r", %(s1)) # 输出:现在是"早上"
- all: 可迭代对象中所有的都为真,返回真
print(all([1,2,3,4,0])) # 返回false
print(all([1,2,3,4,5])) # 返回true
- any:可迭代对象中有一个为真就返回true
print(all([1,2,3,4,0])) # 返回true
常用且重要
- abs: 绝对值
- sum: 求一个可迭代的和
sum([1,2,3,4,5]) # 15
sum([1,2,3,4,5], 1) # 16 之前列表的和 再加最后一位数
- zip:拉链函数,将可迭代对象组合成元祖的形式返回,返回一个迭代器对象,长度取最短的那个可迭代对象的长度
a = [1,2,3,4,5]
b = ["a","b","c"]
c = "ABCD"
d = zip(a,b,c) # 迭代器对象
list(d) # [(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C')]
e = zip(a, b)
list(e) # [(1, 'a'), (2, 'b'), (3, 'c')]
- reversed: 将一个可迭代的对象翻转,返回迭代器对象
list(reversed('abcdef')) # ['f', 'd', 'c', 'b', 'a']
非常重要
- min:
- max:
print(max(1,2,3)) # 3
print(max([1,2,3])) # 3 列表
print(max('1,2,3')) # 3 字符串
print(max((1,2,3))) # 3 元祖
print(max(((3,1),(2,2),(3,2)))) #(3,2) 先比较第一个,第一个一样在比较第二个数
print(max(('a',2),('A',3))) # ('a',2) 比较a和A在ascii码中的大小,字母和数字不能一起比较
a={1:2,2:2,3:1,4:'aa'}
print(max(a)) # 4 输出最大的键,字母和数字不能一起比较
# 以绝对值取最大值
l = [1,2,3,4,-5]
max(l, key=abs) # 会将可迭代对象中的每一个元素一次传入key对应的函数中计算后比较
- sorted: 将一个可迭代的对象排序,默认是从低到高,返回一个列表,也可以加key
# 按照成绩从高到低排序
l2 = [('大壮', 76), ('雪飞', 70), ('纳钦', 94), ('张珵', 98), ('b哥',96)]
sorted(l2, key = lambda x: x[1], reverse=True) # [('张珵', 98), ('b哥', 96), ('纳钦', 94), ('大壮', 76), ('雪飞', 70)]
- filter: 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器
filter(function, iterable)
function -- 判断函数。
iterable -- 可迭代对象。
# 筛选出大于3的元素
l1 = [2, 3, 4, 1, 6, 7, 8]
a = filter(lambda x: x>3, l1) # 迭代器
list(a) # [4, 6, 7, 8]
- map: 根据提供的函数对指定序列做映射
map(function, iterable, ...)
function -- 函数
iterable -- 一个或多个序列
l1 = [i**2 for i in range(1,6)] # [1, 4, 9, 16, 25]
l2 = map(lambda x: x**2, range(1,6)) # 迭代器
list(l2) # [1, 4, 9, 16, 25]
- reduce: 将可迭代对象里的元素累计运算
reduce(lambda x, y: x+y, [1,2,3,4,5]) # 15