python生成器能用while吗_Python:在while循环中使用生成器
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循环中使用生成器相关推荐
- Python坑:bool是int的子类、列表循环中的变量泄露、lambda在闭包中会保存局部变量、重用全局变量
bool是int的子类 a = True print isinstance(a, int) print True == 1 print False == 0 运行结果: True True True ...
- python函数能返回列表吗_Python函数返回列表还是作为生成器工作?
我正在尝试创建一个返回对象或作为生成器的函数. 这是一个坏主意,因为作为一种最佳实践,您希望函数可靠地返回相同类型的值,但为了科学的利益-- 我正在使用Python 2,因此range返回一个列表,x ...
- mybatis generator 打印出来表了 但是没有生成未见_Python丨深度学习中使用生成器加速数据读取与训练...
1.什么是生成器 我们可以把生成器理解为一个高端的列表.生成器就是一个集算法和列表还有依次读取于一体的功能.因为如果列表存储的内容过多就会造成内存的浪费.但是如果"列表"内的元素可 ...
- python读取压缩文件的大小_python查看zip包中文件及大小的方法
python查看zip包中文件及大小的方法 本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import ...
- python 列表有几个元素_python怎么向列表中添加多个元素
python的列表是多变灵活的数据结构,向列表中添加元素,可以使用append()方法,或者extend()方法,还可使用insert()方法.insert() 主要用来插入元素,当向列表末尾添加元素 ...
- python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...
- python空值填充为固定值_Python基础:numpy中空值怎样设置
今天小编为大家带来在numpy中如何设置空值的办法,下面一起来看看吧. 我不明白为什么我会以0而不是不满足条件的空值或空值结尾... b是一个用0和1值填充的numpy数组,c是另一个完全填充的num ...
- python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...
- python if和while的区别_python基础--while循环和if判断、基本运算符
基本运算符 算术运算符 用于算术运算,主要有 :+.-.*./.%.//.** 比较运算符 用于对象比较,主要有:==.!=.<>. >.>=. 赋值运算符 用于算术运算后赋值 ...
最新文章
- php7+的php-fpm参数配置,注意事项
- android 手写字体识别,一种基于Android系统的手写数学公式识别及生成MathML的方法...
- 判断浏览器类型及版本
- mysql主库从库在同一台服务器_MySQL数据库的主从配置(多主对一从)
- java socket编程客户端_Java Socket编程 - 基于Socket实现HTTP下载客户端
- php-fpm的重启
- Android模块化之MicroModule(微信Pins工程)
- jupyter notebook 使用pip安装库,解决报错:zsh:1: command not found: pip
- TensorFlow模型保存和提取方法(含滑动平均模型)
- 一次cpu占用100%的故障解决
- 【原创】修复ios输入框获取焦点时不支持fixed的bug
- 《晨间日记的奇迹》内容概要及读书心得
- wex5 ajax,关于Ajax请求 - WeX5开发者论坛 - 起步软件技术论坛 - Powered by Discuz!
- 工业相机的曝光时间和帧率的关系
- (JAVA) 相邻数对
- Axure绘制页面框架
- 数据库系统:第二章关系数据库
- 社群运营方案怎么写?
- Java编程基础(3)——字典类型
- hbase shell写错退格