【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
臭屌丝!!!

 

posted @ 2016-06-02 15:52  莫问前程  阅读(236)  评论(0编辑  收藏  举报