内置函数
# callable 对象是否可以被调用
def f2():
pass
f3 = 'xxx'
print(callable(f2),callable(f3))
==> True False # 函数可以被调用,字符串不可以被调用
# chr与ord
# chr给一个索引位置,根据给的索引位置在ascii表中找到对应值
# ord反向chr过程,给定一个值,找到对应值在ascii表中的位置
r = chr(65)
n = ord('A')
print(r,n)
==> A 65
# compile 将字符串转换python执行代码
s = 'print(123)'
n = compile(s,'<string>','exec') # 将字符串按照字符串格式编译成Python代码
print(n)
==> <code object <module> at 0x0000000000B454B0, file "<string>", line 1>
# 编译完成后,并不是一个可直接读取的对象,那怎么让它去执行呢,请下边看
# exec 执行python代码,无返回值, 接收:python编译代码或字符串
exec(n)
==> 123 # 我们在上边编译并把值赋给n,这里我们将编译后n变量去exec执行,就会去print(123)
# eval 执行表达式,有返回值,接收:表达式
ret = eval('1+2+3')
print(ret)
==> 6 # 只接受表达式,相比exec好的地方是,他可以接收返回值
# divmod 取余数
r = divmod( 98, 10) # 取99/10的余数和运算值
n1,n2 = r
print(n1,n2)
==> 9 8 # 99除10,得9余8
# filter 筛选
def f2(a):
if a>22:
return True
lis = [11,22,33,44,55]
ret = filter(f2,lis) # 传入条件函数,和可迭代的对象,用可迭代对象逐一去条件函数判断,为真则返回到ret(追加方式)
print(list(ret))
==> [33, 44, 55]
# filter 筛选 与lambda表达式使用
ret = filter(lambda a:a>33, lis)
print(list(ret))
==> [44, 55]
# map 处理可迭代对象
lis = [11,22,33,44]
f4 =lambda a: a+100
result = map(f4, lis) # 传入条件函数,将可迭代对象逐一去函数处理,将处理后结果返回result
print(list(result))
==> [111, 122, 133, 144] # 一目了然
# max min sum
max([11,22,33]) # 传入可迭代,求最大值
min([11,22,33]) # 求最小值
sum([11,22,33]) # 求和
# pow 求次方
ret = pow(2,3) # 求2的3次方
print(ret)
==> 8
# reversed 翻转
# 将可迭代有序的序列翻转
li = [1,23,4,5,44,1,3]
ret = reversed(li)
print(list(ret))
==> [3, 1, 44, 5, 4, 23, 1]
# zip 函数
l1 = ['jack','19','qwwe']
l2 = ['eason','44','2weq']
l3 = ['eric','12','rew']
r = zip(l1, l2, l3)
print(list(r))
==> [('jack', 'eason', 'eric'), ('19', '44', '12'), ('qwwe', '2weq', 'rew')]
# 会根据你的列表元素位置,将三个列表压缩成一个嵌套元祖的列表
random随机模块
# 我们可以通过上边内置函数chr可以让输入对应数字转换为字母
# 接下来就可以通过这个功能,实现一个随机验证码功能
import random
li = [] # 定义一个空列表
for i in range(6): # 我的验证码长度
r = random.randrange(0,2) # 这里我们随机0或1作为真假,来进行下边判断,如果为真该位则为数字,否则则使用chr转为对应字母
if r:
tmp = random.randrange(0, 10)
li.append(str(tmp))
else:
tmp = random.randrange(65, 91) # ascii表65-91为大写字母
c = chr(tmp) # 按照ascii找到对应字母
li.append(c)
result = ''.join(li) #将列表拼接为字符串
print(result)
==> 4R5NB0 # 字母加数字随机验证码组合