Ray是对的,生成器在隐藏StopIteration异常的for e in gen之外使用可能会很困难

但是没有SyntaxError: 'return' with argument inside generator,至少在Python 3.5,Spyder IDE中是这样g = 1

def down_data(h):

t = 0

while h > 0:

t += .0001

h = -4.9*t**2 + 1

v = g*t

yield h, v

return 'fred' # this will be returned on StopIteration Exception

def mainly():

data_gen = down_data(1)

data = [next(data_gen)]

while data_gen:

data.append(next(data_gen))

#print(data)

return len(data)

由于StopIteration异常,main()失败,但down_data(h)返回确实在异常之后执行:mainly()

Traceback (most recent call last):

File "", line 1, in

mainly()

File "C:/Users/john/mypy/mySE_answers/tagd.py", line 48, in mainly

data.append(next(data_gen))

StopIteration: fred

如果要使用自己的next()调用到生成器的末尾,则需要显式try/exceptdef my_try():

data_gen = down_data(1)

try:

data = [next(data_gen)]

while True:

data.append(next(data_gen))

except: StopIteration

return len(data), data[-1]

my_try()

Out[104]: (4518, (-0.0002038759998519435, 0.45179999999996656))

python生成器能用while吗_Python:在while循环中使用生成器相关推荐

  1. Python坑:bool是int的子类、列表循环中的变量泄露、lambda在闭包中会保存局部变量、重用全局变量

    bool是int的子类 a = True print isinstance(a, int) print True == 1 print False == 0 运行结果: True True True ...

  2. python函数能返回列表吗_Python函数返回列表还是作为生成器工作?

    我正在尝试创建一个返回对象或作为生成器的函数. 这是一个坏主意,因为作为一种最佳实践,您希望函数可靠地返回相同类型的值,但为了科学的利益-- 我正在使用Python 2,因此range返回一个列表,x ...

  3. mybatis generator 打印出来表了 但是没有生成未见_Python丨深度学习中使用生成器加速数据读取与训练...

    1.什么是生成器 我们可以把生成器理解为一个高端的列表.生成器就是一个集算法和列表还有依次读取于一体的功能.因为如果列表存储的内容过多就会造成内存的浪费.但是如果"列表"内的元素可 ...

  4. python读取压缩文件的大小_python查看zip包中文件及大小的方法

    python查看zip包中文件及大小的方法 本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import ...

  5. python 列表有几个元素_python怎么向列表中添加多个元素

    python的列表是多变灵活的数据结构,向列表中添加元素,可以使用append()方法,或者extend()方法,还可使用insert()方法.insert() 主要用来插入元素,当向列表末尾添加元素 ...

  6. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  7. python空值填充为固定值_Python基础:numpy中空值怎样设置

    今天小编为大家带来在numpy中如何设置空值的办法,下面一起来看看吧. 我不明白为什么我会以0而不是不满足条件的空值或空值结尾... b是一个用0和1值填充的numpy数组,c是另一个完全填充的num ...

  8. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  9. python if和while的区别_python基础--while循环和if判断、基本运算符

    基本运算符 算术运算符 用于算术运算,主要有 :+.-.*./.%.//.** 比较运算符 用于对象比较,主要有:==.!=.<>. >.>=. 赋值运算符 用于算术运算后赋值 ...

最新文章

  1. php7+的php-fpm参数配置,注意事项
  2. android 手写字体识别,一种基于Android系统的手写数学公式识别及生成MathML的方法...
  3. 判断浏览器类型及版本
  4. mysql主库从库在同一台服务器_MySQL数据库的主从配置(多主对一从)
  5. java socket编程客户端_Java Socket编程 - 基于Socket实现HTTP下载客户端
  6. php-fpm的重启
  7. Android模块化之MicroModule(微信Pins工程)
  8. jupyter notebook 使用pip安装库,解决报错:zsh:1: command not found: pip
  9. TensorFlow模型保存和提取方法(含滑动平均模型)
  10. 一次cpu占用100%的故障解决
  11. 【原创】修复ios输入框获取焦点时不支持fixed的bug
  12. 《晨间日记的奇迹》内容概要及读书心得
  13. wex5 ajax,关于Ajax请求 - WeX5开发者论坛 - 起步软件技术论坛 - Powered by Discuz!
  14. 工业相机的曝光时间和帧率的关系
  15. (JAVA) 相邻数对
  16. Axure绘制页面框架
  17. 数据库系统:第二章关系数据库
  18. 社群运营方案怎么写?
  19. Java编程基础(3)——字典类型
  20. hbase shell写错退格

热门文章

  1. 云原生究竟怎么落地?
  2. 阿里内网最新发布“M8”级Java面试笔记,助力金九银十
  3. 习题4-10 猴子吃桃问题
  4. 要么励志故事:要么孤独,要么庸俗
  5. 一步一步SEO 之 网站内容SEO
  6. AMD启用虚拟化(AMD-V)
  7. java swing 实现鼠标滑轮聚焦缩放图片
  8. 华为鸿蒙系统推升级应用名称,华为哪些手机可以用鸿蒙系统?华为手机鸿蒙系统升级名单公布...
  9. 让自己的app支持小程序
  10. Apache Storm-2011