zoukankan      html  css  js  c++  java
  • 生成器和三元表达式

    一、生成器

    1、生成器:
        生成器就是一种自定义的迭代器
    
    2、为何要用生成器:
        为了节省内存
    
    3、如何用生成器:
        函数体内但凡出现yield关键字,调用函数将不会触发函数体代码的运行,而是会返回一个生成器对象,生成器本质就是一个迭代器
    
    4、yield与return:
         相同点:在返回值角度用法一样
         不同点:yield可以返回值多次值,而return只能返回一次
    yield可以暂停函数,然后我们可以用next方法触发函数代码的运行-》协程
    
    示例:
    def func():
        print("11111")
        yield 1
        print("22222")
        yield 2
        print("33333")
        yield 3
        print("4444")
    
    g=func().__iter__()
    print(g)  # 生成器本质就是一个迭代器
    print(next(g))
    print(next(g))
    print(next(g))
    ==============》
    <generator object func at 0x00000284DA750200>
    11111
    1
    22222
    2
    33333
    3
    
    def my_range(start,stop,step=1):
        while start < stop:
            yield start
            start+=step
    for i in my_range(0,10,2):
        print(i)
    =================》
    0
    2
    4
    6
    8
    

    二、三元表达式

    三元表达式:if的一种简易表达
    好处:代码行数减少,可读性高
    
    通常的if格式:
    def max2(x, y):
        if x > y:
            return x
        else:
            return y
    res = max2(11, 22)
    print(res)
    =========》
    22
    
    三元if格式:
    x = 11
    y = 22
    res = x if x > y else y
    print(res)
    res = "ok" if 10 > 3 else "no"
    print(res)
    ============》
    22
    ok
    
  • 相关阅读:
    企业如何搭建数据分析平台
    如何查看Android设备上的分区信息
    从传统企业谈大数据的战略意义
    金融行业的BI应用分析
    Android 5.x 权限问题解决方法
    unity使用ugui自制调色面板
    手机模式及分区
    高通8x12平台开机画面制作工具
    Unity插件
    Android开发小问题集
  • 原文地址:https://www.cnblogs.com/qiukangle/p/14115624.html
Copyright © 2011-2022 走看看