• 武道之路-炼体期六重天(年已过,恢复更新)


    生成器:调用的时候才生成的数据(惰性计算,协程:保留上次进入的状态,每次程序进入,相当于调用上一次的状态,异步),单线程下的并发效果(不同角色间切换)。

    (3.x)range(),列表生成式 [i*i for i in range(20)], 

    文件读取:

    for line in f: (这里f是文件句柄)

      print(line)

    记住重要的方法:__next__(计算下一个状态值),send(value)(把值传给生成器的yeild)

    例如(斐波那契数列):

    def seq(num):

      #计算几位斐波那契数列

      count,x,y=0,0,1

      while count<num:

        yield y #想把什么放入生成器

        x,y=y,x+y

        count=count+1

      return 'end'

    g=seq(10)

    g.__next__()->1

    g.__next__()->1

    g.__next__()->2

    ...

    超过num数字会抛出异常

    捕获异常:

    try:

      #程序段

    except StopIteration(异常类型,这里表示没有更多值了):

      print('error')

      break

    单线程下的并发效果(异步):

    import time

    def employee(name):

      print('%s 已经准备工作'%name)

      while True:

        work=yield

        print('%s 员工已经完成老板下发的%s份工作 '%(name,work))

    def boss(name):

      wang=employee('小王')

      zhang=employee('小张')

      wang.__next__() #相当于把函数变成生成器 停在yield(执行到这里)

      zhang.__next__() 

      print('%s 准备去接单了'%name)

      for i in range(10):

        print('已经接到 %d 份单子'%i)

        wang.send(i)#把值传给yield

        zhang.send(i)

        time.sleep(1)#隔一秒

    boss('大哥')#调用,boss 接单,员工完成工作同时进行!(不熟悉的自己设断点调试过程)

    迭代器(Iterator):可被__next__调用并不断返回下一个值的对象,直到抛出异常。生成器(generator),range(), f(文件句柄),[i*5 for i in range(10)],for循环(底层)

    可迭代对象(Iterable):可直接作于for循环的对象,list tuple,dict,set,str(可通过Iter()转成迭代器), 带yield的function,generator

    from collections inport Iterable(Iterator) 先引入

    isinstance(对象,Iterable(Iterator)) 判断是否是可迭代对象(迭代器)

    一些内置函数:

    abs() 求绝对值

    bool()判断真假

    all()检测可迭代对象里的元素的值有假即是假

    any()检测可迭代对象里的元素的值有真即是真

    bin()转二进制-》b'.....'

    bytearray('值',encoding='编码'),二进制可变数组,bytes不可变

    callable() 是否可调用,函数,类---》()

    chr 返回ASCII值对应的字符,ord 与之相反

  • 相关阅读:
    Apache xmlrpc
    认识serialVersionUID
    解压gz文件
    List of HTTP header fields
    Hadoop的Python语言封装
    httpcore in httpcomponent
    python enumerate 用法
    Hadoop Streaming Made Simple using Joins and Keys with Python « All Things Hadoop
    移位操作
    Chunked transfer encoding
  • 原文地址:https://www.cnblogs.com/wh-alan/p/8477318.html
Copyright © 2020-2023  润新知