• Python随心记--综合练习 生成器特性阐释


    def getpopulation():
        with open('a.txt',encoding='utf-8') as f:
            for i in f:
                yield i
    getP = getpopulation()
    getPnum = eval(getP.__next__())
    print(getPnum['population'])
    
    def getpopulation():
        with open('a.txt',encoding='utf-8') as f:
            for i in f:
                yield i
    getP = getpopulation()
    all_pop = sum(eval(i)['population'] for i in getP)   #获取总人数
    print(all_pop)
    #注意:迭代只能迭代一次,这里getP在上边已经迭代过了,所以下面的for循环不能在使用
    #可以重新赋值给两一个变量
    for i in getP:
        print('%s %%' %eval(i)['population']/all_pop)
    #yield 相当于return 控制的是函数的返回值
    #x=yield的另外一个特性,接收send传过来的值赋给x
    def test():
        print('开始了')
    
        fisrt = yield 1
        print('第一次',fisrt)
    
        yield 2
        print('第二次')
    t = test()
    res = t.__next__()
    print(res)
    t.send(None)   #可以触发生成器执行
    res = t.send('函数停留在哪儿,我就在哪儿赋值')   #可以触发生成器执行
    print(res)
  • 相关阅读:
    输出重定向
    echo带颜色输出
    shell学习视频目录
    css盒模型
    jQuery表格模糊搜索
    mysql基础语法3
    mysql基础语法2
    mysql基础语法1
    pyspider框架的使用
    quill富文本框图片上传重写
  • 原文地址:https://www.cnblogs.com/Essaycode/p/10126506.html
Copyright © 2020-2023  润新知