python学习之路-day4

1.装饰器

  代码:

import time

def timer(func):  #timer(test1)
    def deco(*args,**kwargs): # *args是为了装饰不同的函数,因为有的函数是需要传参数,有的不需要
        start_time=time.time()
        res=func(*args,**kwargs)  #run test1()
        stop_time=time.time()
        print("the func run time is %s"  %(stop_time-start_time))
        return res
    return deco  #这里返回deco函数的内存地址,方便后面调用

@timer  #test1=timer(test1)  #执行timer(test1)返回的是deco的内存地址,
                            #将它赋值给test1就可以得到deco函数的值
def test1():
    time.sleep(3)
    print('in the test1')

test1()
View Code

 

2.内置方法:

print(all([1,-5,0]))#判断元素不为0或空,只要有一个含0就为假
print(any([]))  #判断元素是否为空
print(ascii('开始'))#把一个数据对象变成字符串的对象
print(bin(5))#将数字转为2进制
print(bool([0,3]))#判断元素不为0或空,只有有一个以上不为0元素就为真
print(bytes("abcde",encoding="utf-8"))
print(chr(100))#返回ascii码的对应表的字符
print(ord("d"))#返回字符对应的ascii码
# dict()生成字典
print(divmod(5,3)) #返回  余数,商
#eval()字符串变成字典
print(hex(14))#十进制转为16进制
print(oct(17))#十进制转为8进制
print(round(1.5454,3))#选择保留几位小数
#slice切片
a={6:2,5:0,2:0,3:2}
print(sorted(a.items()))#按照指定的方式排序
print(type(a))#查看对象的数据类型

A=[1,2,3,4,5,6]
B=['a','b','c','d']
for i in zip(A,B):#  拉链
    print(i)
View Code

 

3.生成器并行

import time
def consumer(name):
    print("%s 准备吃包子啦!" %name)
    while True:
        baozi = yield
        print("包子[%s]来了,被[%s]吃了!"  %(baozi,name))
# c=consumer("wang")
# c.__next__()

def producder(name):
    c=consumer('A')
    c2=consumer('B')
    c.__next__()
    c2.__next__()
    print("老子开始准备做包子啦!")
    for i in range (10):
        time.sleep(1)
        print("做了1个包子,分两半!")
        c.send(i)
        c2.send(i)
producder("wang")
View Code

 

你可能感兴趣的:(python学习之路-day4)