内置函数补充

#bin() 十进制转成二进制 ‘0b**’
print(bin(3)) #return 0b11

#oct() 十进制转成八进制 ‘0o**’
print(oct(3)) #return 0o3

#hex() 十进制转十六进制 ‘0x’
print(hex(3)) #return 0x3
#divmod() 得出除法的商和余数
print(divmod(10,3)) #return (3,1) 商3 余1
#round() 保留小数的位数
print(round(3.1415925,3)) #return 3.142
#pow() 求x的y次幂
print(pow(2,4)) #return 16
#转成utf-8
s1='中国'
print(s1.encode('utf-8'))  #return b'\xe4\xb8\xad\xe5\x9b\xbd'
print(bytes(s1,encoding='utf-8')) #return b'\xe4\xb8\xad\xe5\x9b\xbd'
#ord:输入字符找该字符编码的位置 针对 ASCII
print(ord('a')) #return 97
#chr:输入位置数字找出其对应的字符
print(chr(97)) #return a
print(chr(20102)) #return '了'
#print()输出默认分割符
print(1,2,3,4) #return 1 2 3 4 默认空格隔开
print(1,2,3,4,sep='&') #return 1&2&3&4 
#sum()
l1 = [i for i in range(11)]
print(sum(l1)) #return 55
#reduce()
from functools import reduce
def func(x,y):
    return x*10+y
l = reduce(func,[1,2,3,4])
print(l) #return 1234

闭包

  • 内层函数对外层函数非全局变量的引用(使用)
  • 被引用的全局变量也叫自由变量,这个变量会与内层函数产生绑定关系,不会马上消失
#闭包
def avg1():
    l1=[]
    def avg2(value):
        l1.append(value)
        return sum(l1)/len(l1)
    return avg2
avg3 = avg1()
print(avg3(100)) #return 100
print(avg3(200)) #return 200
print(avg3(300)) #return 300
  • 闭包作用,保证数据安全
def func(a,b):
    def func2():
        print(a+b)
    return func2
result = func(2,3)
print(result) #return <function func.<locals>.func2 at 0x01D28F58>
print(result()) #return 5
print(result.__code__.co_freevars) #return ('a', 'b') 判断有没有自由变量,如果有就是闭包
posted on 2020-07-10 20:21  94小渣渣  阅读(89)  评论(0编辑  收藏  举报