python学习之路 第四天

1、函数动态参数:

     #!/usr/bin/env python3
     def show(*sss,**eee):
         print(sss,type(sss))
         print(eee,type(eee))
     show(11,22,33,44,a = 88,b = 9,)

     运行结果:(11, 22, 33, 44) <class 'tuple'>
                   {'a': 88, 'b': 9} <class 'dict'>

     注:一个*表示元祖,2个*表示字典,一个*和2个*的参数同时存在,*sss和**eee位置不能换,一个*的必须在前面,参数上传也要按顺序。

2、lambda表达式,简单函数的表示方式。

3、chr(65)  'A'  ,    ord('A')  65  ,random.randint(1,10) 生成1-10之间随机数字,可用于验证码。

4、filter 过滤作用。

5、map 对序列中每个元素进行操作。

6、json.loads() 字符串类似字典类型的转换为字典,字符串是双引号。

7、迭代器,__next__查询数据。

8、生成器 generator 一个函数调用返回一个迭代器,函数中包含yield语法。

9、#!/usr/bin/env python3

     def cash_money(amount):

          while amount > 0:

              amount -=100

              yield 100

              print("又来取钱啦!")

     atm = cash_money(500)

     print(atm.__next__())

     print(atm.__next__())

     print(atm.__next__())

     运行结果: 100

                    又来取钱啦!

                    100

                    又来取钱啦!

                    100

10、#!/usr/bin/env python3

      import time

      def consumer(name):

          print("%s 准备吃包子啦!" %name)   

          while True:   

              baozi = yield       

              print("包子[%s]来了,被[%s]吃了!" %(baozi,name))

       def producer(name):    

           c = consumer('A')

           c2 = consumer('B')

           c.__next__()

           c2.__next__()

           print("老子开始准备做包子啦!")

           for i in range(10):  #做10次包子

               time.sleep(1)  #每次花费1秒钟

               print("做了2个包子!")   

               c.send(i)  

               c2.send(i)

     producer("zhangsan")

     运行结果:A 准备吃包子啦!
                   B 准备吃包子啦!
                   老子开始准备做包子啦!
                   做了2个包子!
                   包子[0]来了,被[A]吃了!
                   包子[0]来了,被[B]吃了!
                   做了2个包子!
                   包子[1]来了,被[A]吃了!
                   包子[1]来了,被[B]吃了!
                   做了2个包子!
                   包子[2]来了,被[A]吃了!
                   包子[2]来了,被[B]吃了!
                   做了2个包子!
                   包子[3]来了,被[A]吃了!
                   包子[3]来了,被[B]吃了!
                   做了2个包子!
                   包子[4]来了,被[A]吃了!
                   包子[4]来了,被[B]吃了!
                   做了2个包子!
                   包子[5]来了,被[A]吃了!
                   包子[5]来了,被[B]吃了!
                   做了2个包子!
                   包子[6]来了,被[A]吃了!
                   包子[6]来了,被[B]吃了!
                   做了2个包子!
                   包子[7]来了,被[A]吃了!
                   包子[7]来了,被[B]吃了!
                   做了2个包子!
                   包子[8]来了,被[A]吃了!
                   包子[8]来了,被[B]吃了!
                   做了2个包子!
                   包子[9]来了,被[A]吃了!
                   包子[9]来了,被[B]吃了!

 

posted @ 2016-12-24 20:35  无言的风  阅读(317)  评论(0编辑  收藏  举报