python第十二天

第二模块学习:  生成器,迭代器,内置函数

生成器特点:只有在调用时才会生成相应的数据,运行的速度快!

示例:

 1 def fil(max):#斐波那契数
 2     n,a,b=0,0,1  #定义初始数据
 3
 4     while n<max:
 5         yield b
 6         a,b=b,a+b #进进第二次的赋值
 7         n+=1
 8
 9
10     return ‘---deno----‘
11
12 a=fil(10)
13 while True:
14     try:
15         print(a.__next__())#打印返回值
16     except StopIteration as e:#异常返回
17         print(‘XXXXXX‘,e.value)
18         break

yield  生成器断点缓存 可赋于变量

.send()可以为yield 传值、数据

示例:

 1 #利用生成器 可形成多并发
 2 #
 3 name_1=‘销售点A‘
 4 name_2=‘销售点B‘
 5 name_sc=‘大丰厂‘
 6 yf=‘衣服‘
 7
 8 def a(name):
 9     print("产品%s………准备完毕………"%name)
10     while True:
11         doc=yield#生成器断点缓存
12         print(‘%s在销售\033[32;1m%s\033[0m‘%(name,doc))#传入打印出来
13
14 # c=a(‘销售点A‘)
15 # c.__next__()#首次运行加载 doc
16 # yf=‘衣服‘
17 # c.send(yf)
18 # c.__next__()
19 # c.__next__()
20 # c.__next__()
21 def b(name):
22     print("产品%s………准备完毕………"%name)
23     while True:
24         doc=yield#生成器断点缓存
25         print(‘%s在销售\033[32;1m%s\033[0m‘%(name,doc))#传入打印出来
26
27 def sc(name):#生产产家
28
29     c=a(name_1)
30     d=b(name_2)
31     c.__next__()#首次加载
32     d.__next__()
33     print(‘%s开始生产了…………‘%name)
34     for x in range(10):
35         print(‘生产了%s件%s‘%((x+1)*2,yf))
36         c.send(yf)
37         d.send(yf)
38
39 sc(name_sc)

迭代器:Iterator

  可以返回下一个值的迭代对象,就可以称为迭代器

迭代对象:Iterable

  可以被for循环的对象,如列表,字典,字符串等,可以称为迭代对象!

iter() 可以将迭代对象转化有迭代器

生成器属于迭代器中的一种

内置函数:

1 abc(i)#返回绝对值
2 all()#当可迭代对象值都为真时才返回真
3 any()#当可迭代对象值有一个为真时就返回真
4 ascii()#可以将列表转为ascii表对应的字符串输出
5 bin()#十进制转二进制………………
时间: 2024-08-25 17:09:20

python第十二天的相关文章

Python第二十二天 stat模块 os.chmod方法 os.stat方法

Python第二十二天   stat模块  os.chmod方法  os.stat方法 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据stat模块读取os.stat()中的值的意思简单来说,os.stat是将文件的相关属性读出来,然后用stat模块来处理 os.stat 返回一个stat 结果,结果类型是posix.stat_result stat(path) -> stat result 获取stat结果 st = os.stat('/tmp/aa.p

python第十二天-----RabbitMQ

有一位小伙伴说让我去A站写博客可能会有很多人喜欢,真是搞不懂,北方哪里有卖萌?北方默认状态就是这么萌的!再者说了,这明明就是很专注于技术的博客嘛,能不能严肃点!知不知道什么叫帧? 学习到了数据库的相关操作,真是B了狗了,这个破玩意真是无孔不入啊,从第一次接触到现在一直都对数据库处于抵抗状态!好讨厌!所以最后决定,只写rabbitmq相关的博客,数据库什么的,拉黑! 总的来说10.1学习计划还是很失败的!docker学习进度超出了预期,openstakc学习进度超出了预期,python学习进度也超

菜鸟学Python第二十二天

面向对象的三大特性之继承 什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或者多个父类(python支持多继承),父类又可以称为基类又或超类,新建的类称为派生类或者子类. 子类会'遗传'父类的属性(特征和技能),从而解决代码重用的问题 class Father: # 父类 height = tall class Son(Father): # 子类,需要将父类传入 pass ? print(Son.height) #子类直接调用的父类中的属性 继承与抽象 继承描述的是子类与父类之间的关系

学习python第十二天,函数4 生成器

在Python中,这种一边循环一边计算的机制,称为生成器:generator 要创建一个generator,有很多种方法.第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: >>> L = [x * x for x in range(10)] >>> L [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> g = (x * x for x in range(10)) >>&g

python第二十二天-----在做作业当中............

作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流水提供还款接口ATM记录操作日志提供管理接口,包括添加账户.用户额度,冻结账户等...用户认证用装饰器 程序结构:ATM/#综合目录|- - -atm/#atm程序主目录| |- - -README| |- - -__init__.py| |- - -bin/#执行程目录| | |- - -__init__.p

python第十二天(迭带器)

一.迭代器的概念: 迭代器协议:内部含有__next__和__iter__方法的就是迭带器. 迭代器协议和可迭代协议: 1.可以被for循环的都是可迭代的. 2.可迭代的内部都有__iter__方法. 3.只要是迭代器一定可以迭代. 4.可迭代的.__uter()方法就可以得到一个迭代器. 5.迭代器中的__next__()方法可以一个一个的获取值. for循环其实就是在使用迭代器,iterator可迭代对象,会返回内存地址. 只有可迭代对象的时候才能用for,如果遇到一个新变量,不确定能不能f

python 第十二天2018.04.01 带参数的装饰器,,函数的有用信息

一.带参数的装饰器,函数的有用信息 def func1(): '''此函数的功能是完成的登陆的功能 return: 返回值是登陆成功与否(true,false) ''' print(333) func1() print(func1.__name__)#func1 print(func1.__doc__)#此函数的功能是完成的登陆的功能,return: 返回值是登陆成功与否 打印函数名 from functools import wraps def wrapper(f): @wraps(f) de

学习Python第十二天

# 加载装饰器就是将原函数名偷梁换柱成了装饰器最内层那个wrapper函数 # 在加载完毕后,调用原函数其实就是在调用wrapper函数 # 当一个被装饰的对象同时叠加多个装饰器时 # 装饰器的加载顺序是:自上而下 ' ' ' import  time def  timmer (func: # func=wrapper2的内存地址 def   wrapper1 (* args, **kwargs): print('=======================>wrapper1运行了') sta

python第十二天(函数三)

原文地址:https://www.cnblogs.com/wangyanpan/p/10004627.html