迭代器:
1.什么是迭代器
指更新换代的过程,应用程序的升级
根据上一个结果产生下一个结果
迭代器是根据上一个结果得到下一个结果的工具,一种获取数据的工具
可迭代器对象是指可以使用迭代器取出数据的对象
带下划线开头和结尾的方法都是特殊的方法,会在特定时间执行
通过函数__iter__()来获取迭代器
所有容器类型都可迭代,包括字符串
2.如何使用
1.获取迭代器调用__iter__()得到迭代器
2,通过__next__()方法来获取每个值
文件也是可迭代对象也是迭代器
3.调用iiter将返回迭代器本身
l=[1,2,3,4]
res=l.__iter__()
while True:
try:
print(res.__next__())
except:
print("stop it")
break
3.生成器
yield 可以多次产生数据
函数中出现yield 该函数就是生成器
一旦函数中出现了yield,调用函数时不会立即执行函数体,返回一个生成器对象
在调用函数的__next__方法时。遇到yield会暂停,每一次调用next都是基于上一次yield的位置往下走
同时会把yield后的数据返回给调用者,生成器就是迭代器,具备iter和next函数,可以直接for循环来遍历
def app():
print("start")
yield
print("over")
yield
res=app()
k1=res.__next__()
print(k1)
k2=res.__next__()
print(k2)
def app():
i=1
while i<=100:
yield i
i+=1
qq=app()
for i in range(100):
print(qq.__next__())
send函数用于向生成器发送数据,但是要先调用next
def app():
while True:
food=yield "鸡蛋"
print(food)
c=app()
c.__next__()
c.send("1")
c.send("2")
面向过程编程
#1、首先强调:面向过程编程绝对不是用函数编程这么简单,面向过程是一种编程思路、思想,而编程思路是不依赖于具体的语言或语法的。言外之意是即使我们不依赖于函数,也可以基于面向过程的思想编写程序 #2、定义 面向过程的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么 基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式 #3、优点:复杂的问题流程化,进而简单化 #4、缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身 #5、应用:扩展性要求不高的场景,典型案例如linux内核,git,httpd