内置函数补充
callable() #检测一个东西能否被调用
def f1(): pass f2 =123 print(callable(f1)) print(callable(f2))
# chr() 数字转化成字母
# ord() 字母转化成数字
r = chr(65) print(r) n = ord("a") print(n)
#随机码 65到90
import random li = [] 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 True li = [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 result r = 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,locals
NAME = "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,sum
r1 = 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 s2 ret = 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 @outer def f1(arg): print(arg) return "哈哈" @outer def f2(a1,a2): print("F2")