day18 内置函数,匿名函数
内置函数
1.divmod() 值是整除数和取余,值是一个元组,
多用于 分页,即101条数据的时候,如果要每页10条,我们要把他分成11页
最后一页1条数据。就可以用divmod()
print(divmod(5,2)) (2, 1)
2.round() 取小数点后几位,4舍5入
print(round(2.251651612,3)) 2.252
3.pow() 幂运算
即2的3次方,减去5
print(pow(2,3,5)) #值为3
4.sum()求和.
内部必须是一个可迭代对象。
后面加的值是开始值,比如50,那么就从50开始加前面列表的数
print(sum([1,2,3,4,5],50)) #值为65
可以用作算利息,
print(sum([1,2,3,4,5]),"本钱")
5.abs()
取绝对值,即负数的绝对值也是正数
print(abs(-6))
6.min(), max():
可以接收散列的值,和可迭代的对象
key是一个函数名,判断的结果根据函数的返回值来确定
defult 如果可迭代对象为空,设置默认最小值
print(min([],key=abs,default=1)) #输出为1 print(max([1,2,3,4,-5],key=abs)) #abs函数执行后-5变成5,所以结果为-5
7.reversed() 反转,返回的是一个迭代器。所以要接收。
print("".join(list(reversed("asdfg")))) ret = reversed([1,2,3,4]) ret = reversed(range(0,20))
8.slice() 切片
l = [1,2,3,4,5] print(l[:3]) #语法糖 l = [1,2,3,4,5] my_slice = slice(1,5,2) print(l[my_slice]) #l[1:5:2]
9.format() 最常用的功能就是,对齐,空白默认填充空格
print(format('test', '<20')) #左对齐 print(format('test', '>20')) #右对齐 print(format('test', '^20')) #剧中
10、bytes() 字符串转成字节码,多用于传输,储存
传输过去的是uncode 所以还要编译成 对应编码,
s = 'alex' by = bytes(s,encoding='utf-8') print(by) print(by.decode('utf-8'))
11.bytearray()
改一个数据中一个字符的时候 ,不会在内存中重新创建新的数据,节省内存
array == 数组 alex [a,l,e,x] s = 'alex' ret = bytearray(s,encoding='utf-8') print(id(ret)) ret[0] = 65 print(ret,id(ret)) s = ret.decode('utf-8')
12.memoryview
必须在bytes下用
ret = memoryview(bytes('你好',encoding='utf-8')) print(len(ret)) print(bytes(ret[:3]).decode('utf-8')) print(bytes(ret[3:]).decode('utf-8'))
13.ord() , chr() , ascii().
三个编码相关的转换函数
print(ord('A')) #65 print(chr(97)) #a print(ascii('你好'))#'\u4f60\u597d'
14.repr()
能直接按照print里的样子打印出来
print(123) print('123') print(repr('123'))#'123' inp =input('>>>') #123 print(repr(inp)) print('你好 :%s'%('alex')) print('你好 :%r'%('alex'))#你好 :'alex'
15.all(),any()
print(all([1,22,'',4])) #and 全是True才返回True print(any([1,'',(),None]))#or 有一个True就返回True
16.zip()
将对应的元素缝合成一个元组,数量按照最少的一个取
l = (12,3,4,5,6,7) l2 = ('a','b','c','d') l3 = [9,8,7] ret = zip(l,l2,l3) for i in ret: print(i) # 12, 'a', 9) # (3, 'b', 8) # (4, 'c', 7)
17.sorted()
排序,
l = [1,34,3,-5864,5,-1236,7] print(sorted(l))#[-5864, -1236, 1, 3, 5, 7, 34] print(sorted(l,key=abs))#[1, 3, 5, 7, 34, -1236, -5864] l = [[1,2],[3,4,5,6],(7,),'123'] print(sorted(l,key=len))#[(7,), [1, 2], '123', [3, 4, 5, 6]]
匿名函数 —— lambda表达式
#参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任意数据类型
一句话的python
#三元运算
#各种推导式、生成器表达式
#lambda表达式
#这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10))

t1 = (('a'),('b')) t2 = (('c'),('d')) print(list(zip(t1,t2))) print(list(map(lambda t:{t[0]:t[1]} ,zip(t1,t2)))) print([{i[0]:i[1]} for i in zip(t1,t2)]) test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2))
l=[3,2,100,999,213,1111,31121,333] print(max(l)) dic={'k1':10,'k2':100,'k3':30} print(max(dic)) print(dic[max(dic,key=lambda k:dic[k])])
可以匿名存在和别的函数合作的时候

浙公网安备 33010602011771号