内置函数补充
callable() #检测一个东西能否被调用def f1(): passf2 =123print(callable(f1))print(callable(f2))# chr() 数字转化成字母# ord() 字母转化成数字
r = chr(65)print(r)n = ord("a")print(n)#随机码 65到90
import randomli = []for n in range(6): r = random.randrange(0,5) if r ==2 or r ==4: num = random.randrange(0,10) li.append(str(num)) else: i = random.randrange(65,91) c = chr(i) li.append(c)result = "".join(li)print(result)
#Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串,不同数据类型拼接会失败
# compile() #把字符串编译成python代码# eval() #执行,接收:表达式,并且获取结果 有返回值# exec() #执行python代码,接收:代码或者字符串 没有返回值s = "print(123)"#编译r = compile(s,"<string>","exec")#执行exec(r)m = "8*8"ret = eval(m)print(ret)
#dir()用来快速获取模块,对象,类提供了哪些功能 不详细
# print(dir(dict))#help(list)查看帮助,详细divmod()
共97条,每页显示10条,需要多少页
# r = divmod(97,10)# print(r[0])# print(r[1])# n1,n2 = divmod(97,10)
isinstance()#用来判断某个对象是否是某个类的实例
s = "alex"r1 = isinstance(s,dict)r2 = isinstance(s,str)print(r1,r2)#filter
# def f1(args):# result = []# for item in args:# if item > 22:# result.append(item)# return result# li = [11,22,33,44,55]# ret = f1(li)# print(ret)#filter(函数,可迭代的对象)def f2(a): if a >22: return Trueli = [11,22,33,44,55]ret = filter(f2,li)print(list(ret)) # #filter内部,循环第二个参数 # result = [] # for item in 第二个参数: # r = 第一个参数(item) # if r: # result(item) #return result #filter,循环第二个参数,让每个循环元素执行函数,如果函数返回值True,表示元素合法li2 = [11,22,33,44,55]result = filter(lambda a: a > 33,li2)print(list(result))#map(函数,可迭代的对象)
li = [11,22,33,44,55]def f1(args): result = [] for i in args: result.append(100+i) return resultr = f1(li)print(r)def f2(a): return a + 100#result = map(f2,li)result = map(lambda a: a + 100,li)print(list(result))
#区别
#filter 函数返回True,将元素添加到结果中#map 将函数返回值添加到结果中 #globals,localsNAME = "wangxin"def show(): a = 123 c = 123 print(locals()) print(globals())show()#hash() 一般python内部使用,知道s = "sadfsadfsadf"print(hash(s))#id()查看内存地址#len()s = "无馨"print(len(s)) #python3默认按照字符、也可以转化成字节查看,python2只能以字节方式查看b = bytes(s.encoding='utf-8')print(len(b))#max,min,sumr1 = max([11,22,33,44])r2 = min([11,22,33,44])r3 = sum([11,22,33,44])#pow()# 2**10# r = pow(2,10)# print(r)#repr(),使用时会去调用这个对象的类里面的repr方法#reversed,反转,同列表的反转#round 四舍五入#slice 和切片功能一样# s = "wangyuehan"# print(s[0:2])#sorted 排序,和列表排序一样#zip 将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
l1 = ["likai",11,22]l2 = ["is",11,22]l3 =["sb",11,22,33]r = zip(l1,l2,l3)temp = list(r)[0]ret = ' '.join(temp)print(ret)
装饰器
#!/usr/bin/env python#-*- coding:utf-8 -*-import s2ret = s2.f1("fafafa")print("返回值",ret)s2.f2(11,22)
#!/usr/bin/env python#-*- coding:utf-8 -*-def outer(func): def inner(*args,**kwargs): print('before') r = func(*args,**kwargs) print("after") return r return inner# @ + 函数名# 功能# 1.自动执行outer函数并且将其下面的函数名f1当作参数传递# 2.将outer函数的返回值,重新赋值给f1@outerdef f1(arg): print(arg) return "哈哈"@outerdef f2(a1,a2): print("F2")