当前位置: 首页 > news >正文

做网站常用的背景图像规模以上工业企业产值

做网站常用的背景图像,规模以上工业企业产值,郑州网站设计推荐,本人急招一名临时工生成器 这个老师的课 这个老师的网页 获取系列有规律但是个数不确定的数据 使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据 使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法 还有就是如果需要大量的数据,…

生成器

这个老师的课
这个老师的网页

获取系列有规律但是个数不确定的数据

使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据

使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法

还有就是如果需要大量的数据, 而实际使用的时候只用其中一部分, 会浪费大量的空间

生成器是一个记录生成数据的方式, 而不是实际的数据的方式, 实际是一个特殊的迭代器

实际定义

方法一

只需要把一个列表的生成[]改为()

nums = [x for x in range(5)]
nums2 = (x for x in range(5))print(type(nums))
print(type(nums2))print(nums)
print(nums2)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
<class 'list'>
<class 'generator'>
[0, 1, 2, 3, 4]
<generator object <genexpr> at 0x000002431C7B2110>

方法二

有时候这一个推导比较复杂, 不能使用for循环实现

这时候可以使用一个函数生成一个生成器

这一个函数返回的时候使用的不是return, 而是使用yeild, 下一次调用的时候会从yeild返回的位置

def fib_generator():num1 = 1num2 = 1while True:temp_num = num1num1, num2 = num2, num1 + num2yield temp_num

这个代码块的返回值是一个生成器, 这一个生成器第一次执行会从def开始直到yield, 调用next的时候会返回yield后面的数值

fib = fib_generator()print(fib)
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
<generator object fib_generator at 0x000002342F7D2110>
1
1
2
3
5

这一个迭代器执行结束的时候会产生一个异常StopIteration, 如果是使用一个return, 返回的值会成为这一个异常的参数, 可以使用try语句进行捕获

def fib_generator():num1 = 1num2 = 2temp_num = num1num1, num2 = num2, num1 + num2yield temp_numtemp_num = num1num1, num2 = num2, num1 + num2yield temp_numtemp_num = num1num1, num2 = num2, num1 + num2yield temp_numreturn "结束了!!!"fib = fib_generator()print(next(fib))
print(next(fib))
print(next(fib))
try:print(next(fib))
except StopIteration as ret:print(ret.value)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
1
2
3
结束了!!!

send唤醒

除了使用next还可以使用send发送一个数据给迭代器

def fib_generator():num1 = 1num2 = 2temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)return "结束了!!!"fib = fib_generator()print(fib.send(None))
print(fib.send(2))
print(fib.send(3))
try:print(fib.send(4))
except StopIteration as ret:print(ret.value)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
1
get  2
2
get  3
3
get  4
结束了!!!
http://www.yayakq.cn/news/18294/

相关文章:

  • 网站创建的基本流程asp.net 网站开发项目化教程
  • 江门网站建设方案开发wordpress 关注插件
  • 西青做网站公司公司简介样本
  • 辽源做网站wordpress 主题设计
  • 房产网站建设整体架构电商网站网址大全
  • 怎么拥有自己的网站对营销网站建设评估及分析
  • 恩施建设厅网站南宁网站开发公司
  • 网站开发中应注意哪些问题企业网站模板2016成套
  • 网站建设和购买区别国内网站备案流程
  • 建设h网站风险大吗重庆中环建设有限公司网站
  • html5响应式网站网络公司排名及利润
  • 邯郸中国建设银行网站河南网站建设找工作
  • 谷歌网站 百度建设网站只
  • 南昌门户网站建设长沙网站seo推广公司哪家好
  • 官方网站下载微信最新版常德网站开发服务
  • 阜阳做网站的商户外网搭建
  • 做美食视频网站有哪些公司网站做的一样算不算侵权6
  • 代做ppt的网站中小企业网站建设公司首选
  • 简单展示网站模板校园网站制度建设
  • 品传集团网站建设优秀的网络营销策划书
  • 无锡网站建设 首选无锡立威云商先做网站主页还是先上架宝贝
  • 我的企业邮箱在哪里看seo博客写作
  • 专门做汽车内饰的网站浙江省建设培训中心网站
  • ddns做网站网络建设费计入哪个科目
  • 哪些网站可以做兼职设计师discuz网站编码
  • 高淳哪家做网站不错网络营销的优化和推广方式
  • 东莞市建设工程检测中心网站软件开发工程师的职责
  • 网站建设是不是都需要交费如何用网页设计制作个人网站
  • 丹灶网站建设案例北京汽车网站建设
  • 国外一些建筑公司网站微信做的地方门户网站