标签:width 创建 === port 文件 控制 ext 导入 文件夹
#方法 一:列表推导式的 [ ] 改成 ( ) tu = (x for x in range(11)) print(tu) print(next(tu)) print(next(tu)) print(next(tu)) #方法 二:在函数里面加上yield def func1(num): i = 0 while i <= num: yield i i += 1 a = func1(10) for i in a: print(i)
·
def func(): print("---------------") yield 11 print("=======11========") yield 22 print("=======22========") yield 33 print("=======33========") result = func() print(next(result)) print(next(result)) print(next(result))
注意:
yield 表达式只能在函数中使用,在函数体中使用 yield 表达式可以使函数 成为一个生成器
yield 可以返回表达式结果,并且暂定函数执行,直到next激活下一个yield
Python使用生成器对延迟操作提供了支持。所谓延迟操作,是指在需要的时候才 产生结果,而不是立即产生结果,从而节省大量的空间,这也是生成器的主要好处
迭代就是一个依次从数据结构中 拿出东西的过程
迭代可以用更加低级的while来实现,但是需要自己控制下标 并获取对应的元素
from collections import Iterable ,Iterator
可迭代对象: Iterable 可迭代对象能用for循环进行遍历
可以使用 isinstance() 判断一个对象是否是 Iterable 对象:
迭代器:Iterator
迭代器不仅可以通过for进一行遍历,可以通过next取值
可以使用 isinstance() 判断个对象是否是 Iterator :
from collections import Iterable ,Iterator str1 = "sdafgbgfn" for i in "sdsafvfadfv": #for循环 print(i) str2 = iter(str1) #把可迭代对象转换为迭代器 # print(isinstance(str2,Iterator)) #判断是否为迭代器 print(next(str2))
#迭代循环原理 li = [1,2,3,4,5] index = 0 var = None while index<len(li): var = li[index] print(var) index += 1
生成器有next方法没有iter方法
模块就是一个python文件
在开发中,我们可以分配不同的程序员,不同部 分的工作,最后通过导入模块,将所有人的成果结合在一起
import --> 执行导入的文件 --> 在当前这个文件里生成一个模块对象
包,就是包含了很多模块的文件夹
构造一个包:首先需要把py文件放入包中,并且加一个__init__.py文件
标签:width 创建 === port 文件 控制 ext 导入 文件夹
原文地址:https://www.cnblogs.com/lyh-520/p/9308950.html