【Python自动化运维之路Day4】
abs() 取绝对值
all() 所有为真,则为真,否则为假
any() 至少有一个为真,就为真,否则为假
callable() 判断函数是否可以被调用,如果可以返回True,否则返回False
bin() 将十进制数转换为二进制表示
hex() 将十进制的数值转换为十六进制
oct() 将十进制数值转换为8进制
chr() 和 ord()
chr 返回一个元素在ASCII表里对应的关系的字符串,如str(65)返回的是大写字母“A“ ,反查是 ord()
#随机生成一个6位验证码 import random li=[] for i in range(6): r=random.randrange(0,5) if r ==2 or r==4: num=random.randrange(0,10) li.append(str(num)) else: n=random.randrange(65,91) #从65到90 之间随机取出一个数字 c=chr(n) #把数字转换成字母 li.append(c) j="".join(li) #字符串拼接,只能拼接字符
bool() 返回给定元素的布尔值
divmod() 相除,返回商和余数,返回值是一个元组
globals() 获取所有的全局变量;
locals()获取所有局部变量
compile():将字符串编译成python代码
eval() 可以把括号里面的字符串当成python执行,但只支持表达式且有返回值;
exec() 执行,比eval要牛逼,因为exec可以执行任何Python代码,但eval只能执行表达式;但有个缺陷是eval有返回值,而exec没有。
exec可以执行compile编译过的,也可以接受代码执行。
eval() 执行,把接受的字符串当做一个表达式,把代码编译成一行的表达式;
isinstance(s,类型)用来判断对象是否是类的实例
issubclass
zip():合并多个list tulpe
三元运算
result = 值1 if 条件 else 值2
lambda
my_lambda = lambda arg : arg + 1
map 遍历序列,对序列中每个元素进行操作,最终获取新的序列
new_list = map(lambda a: a + 100, li)
new_list = map(lambda a, b: a + b, li, sl)
fiter:
li = [11, 22, 33]
new_list = filter(lambda arg: arg > 22, li)
二 装饰器
@+函数名
2个功能
1、自动执行out函数,并且将其下面的函数名当作参数执行
2、将out函数的返回值,重新赋值给下面的参数
def outer(func): def inter(*args,**kwargs): print("before") r=func(*args,**kwargs) print("hello") return r return inter @outer def f1(a): print(a) return "屌丝!" @outer def f2(a1,a2): print("F2",a1,a2) return "臭屌丝!!!" test=f1(1111) print(test) test2=f2(222,333) print(test2) #结果 before hello 屌丝! before F2 222 333 hello 臭屌丝!!!