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

新乡做网站报价指数基金定投技巧

新乡做网站报价,指数基金定投技巧,系统模板html,网站建设项目方案模板生成器 这个老师的课 这个老师的网页 获取系列有规律但是个数不确定的数据 使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据 使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法 还有就是如果需要大量的数据,…

生成器

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

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

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

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

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

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

实际定义

方法一

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

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.mnyf.cn/news/721.html

相关文章:

  • 商城网站开发方案网站seo是啥
  • 做钢管用哪个门户网站查关键词的排名工具
  • 做兼职的网站哪个靠谱网站建设公司哪个好呀
  • 福田做棋牌网站建设哪家公司便宜小红书如何引流推广
  • 网站建设运营的灵魂是什么意思想建立自己的网站
  • 做实验流程图的网站seo和sem的联系
  • 非凡网站建设市场营销策划书
  • 苏州新区做网站网络舆情监测平台
  • 在线设计免费logoseo服务内容
  • 浙江大学微纳加工平台seo优化好做吗
  • 贵州便宜网站推广优化电话google官网入口
  • 南宁网站建设加q479185700长沙seo关键词排名优化
  • 网站如何做竞价百度招聘平台
  • wordpress插件安装本地中山网站seo
  • 武汉 网站建设 招标公告海口网站排名提升
  • 个人网站可以做社区吗网络推广100种方法
  • 求一个做交通分析的底图网站发稿推广
  • 河南怎样做网站推广seo自学网免费
  • 聚划算网站建设分析国外免费建站网站搭建
  • 网站设计需要学什么软件外贸网站制作公司
  • 怎么给一个花店做网站建设今日国内新闻头条新闻
  • 二维码生成器在线制作图片seo博客大全
  • 此网站正在建设中1688网站
  • 亿建联网站是谁做的友情链接收录
  • 域名注册网站建设网络实名seo排名点击
  • 博客用来做微网站2023广东又开始疫情了吗
  • wordpress 自媒体模版长沙seo全网营销
  • 彩票网站建设安全度百度搜索资源平台
  • 宁波做网站建设推广今日国内新闻头条新闻
  • 北京网络优化优化大师会员兑换码