zoukankan      html  css  js  c++  java
  • 函数进阶之迭代器,递归

    迭代器

    可迭代的对象:具有iter方法的对象,可迭代对象不一定是迭代器对象

    迭代器对象:具有iter和next方法的对象,迭代器对象一定是可迭代对象,迭代器对象加上iter方法还是迭代器本身

    for 循环原理

    for i in lt:

    1. 把lt变成迭代器对象

    2. 然后迭代使用next方法获取每一个元素

    3. 捕捉异常中断while循环

    三元表达式

    print(1) if i > 10 else print(2)

    列表推导式

    ​ [i for i in range(10)] #0-9已经拿出来了

    字典生成式

    {k:v for k,v in dic.items()}

    生成器表达式

    (i for i in rang(10)) #不去使用next取值,是没有值的

    生成器

    自定制的迭代器

    def func():

    ​ yield

    yield:

    1.展厅函数,遇到下一个yield继续运行函数代码

    2.具有返回值

    3.让函数()变成生成器对象

    return:

    1.终止函数

    2.返回值

    匿名函数

    没有名字的函数 lambda参数:代码块

    一般不单独使用,与max/min/map/filter/sorted联用

    递归

    函数调用函数本身,但是必须得有结束条件

    内置函数

    内置函数的直接用的,属于Python解释器的

    数据类型的内置函数只有数据类型本身才能使用

    enumerate()

    面向过程变成

    流水线

    优点:思路清晰

    缺点:可扩展性差;功能与功能直接不独立;调试麻烦

  • 相关阅读:
    从OkHttp的源码来看 HTTP
    从Retrofit的源码来看 HTTP
    登录授权、TCP/IP、HTTPS
    编码、加密、Hash
    java获取当前系统时间
    mybatis自动生成
    rabbitMQ权限相关命令
    在Spring Boot中使用Spring Security实现权限控制
    学习sharding-jdbc 分库分表扩展框架
    Jenkins的关闭、重启
  • 原文地址:https://www.cnblogs.com/shiqizz/p/11515030.html
Copyright © 2011-2022 走看看