zoukankan      html  css  js  c++  java
  • python基础(十六、变量进阶

    15.变量进阶
    5)迭代器__iter__
    (1)对int类型数据进行迭代遍历会报错

    (2)dir()函数辨别可迭代变量
    dir()函数可以查看变量或数据类型支持的操作,包含“iter”方法的变量或数据类型是可以迭代的

    可以使用成员变量in判断是否包含“iter”:

    可以迭代的数据类型:str、list、dict、tuple、set、open(文件)
    不可迭代数据类型:int、bool、float

    (3) “iter”方法就是迭代器

    list.__iter__的数据类型是列表迭代器,类似的数据类型还有字符串迭代器,字典迭代器等
    迭代器也支持“iter”方法,说明迭代器本身也是可迭代的
    迭代器包含“iter”和“next”方法

    (4)迭代遍历迭代器,可以获取列表中的数据

    (5)从迭代器获取数据的方法:next

    数据取完后,再调用__next__,会报错

    数据取完后,想要再次获取数据,需要重新获取迭代器

    (6)for循环的工作原理:
    for循环内部使用的是迭代器

    (7)判定迭代器和可迭代对象Iterator、Iterable
    ①通过dir()查看变量的操作,包含“iter”方法的变量可迭代,包含“iter”和“next”方法的变量是迭代器

    ②官方判定方法Iterator、Iterable

    判断是否可迭代,区分处理

    (8)小结
    迭代器的作用:让不同的数据类型有相同的遍历方式。
    迭代器的特点:
    ①省内存
    ②只能向前,不能重复
    ③惰性机制,必须调用next才能继续执行

    6)生成器
    生成器的本质就是迭代器。
    生成器的作用是节省内存。
    (1)生成器的引入

    生成器可以帮助我们每次只拿一个数据,不用一次取出所有数据。

    (2)生成器函数的语法:
    def func():
    yield
    func():创建一个生成器对象
    生成器函数执行的时候,不会立即把函数全部执行完,会返回一个生成器。

    (3)生成器的本质就是迭代器

    生成器的本质就是迭代器,需要调用__next__()方法,让生成器执行一次,执行到yield

    (4)yield可以提供返回值

    ①程序再次调用__next__方法,程序继续运行到下一个yield。
    yield可以让函数分段执行

    ②执行__next__方法时,如果没有找到yield程序会报错

    应用:

    (5)send()方法
    next()只能接收数据
    send()可以接收数据,还能给生成器传递消息

  • 相关阅读:
    六:Vue之父子组件间的三种通信方式
    五:Vue之ElementUI 表格Table与分页Pagination组件化
    四:Vue之VUEX状态管理
    三:Vue之混入(mixin)与全局混入
    二:Vue之ElementUI Form表单校验
    一:Vue之开发环境搭建
    变了,说不出来的感觉。
    20180320作业2:进行代码复审训练
    20180320作业1:源代码管理工具调查
    15软工课后作业02-15100120
  • 原文地址:https://www.cnblogs.com/bdzxh/p/14062526.html
Copyright © 2011-2022 走看看