IT编程 > 脚本编程 > Python

python 异常处理 StopIteration 用来作为迭代器的输出停止/next()

207241人参与2020-07-12

有StopIteration的情况

it = iter([1,2,3,4,5])
while True:
	try:
		#获取下一个值
		x = next(it)
		print(x)
	except StopIteration:
		#遇到StopIteration就退出循环
		break

在这里插入图片描述
这里退出while循环后还可以继续往下执行代码

没有StopIteration的情况

it = iter([1,2,3,4,5])
while True:

	#获取下一个值
	x = next(it)
	print(x)
	# except StopIteration:
	# 	#遇到StopIteration就退出循环
	# 	break

在这里插入图片描述
这里Traceback后就不能往下执行代码了

在next()中增加第二个参数

it = iter([1,2,3,4,5])
while True:

	#获取下一个值
	x = next(it,None)
	print(x)
	if x == None:
		break
# 	# except StopIteration:
# 	# 	#遇到StopIteration就退出循环
# 	# 	break
print("hahahaha")

在这里插入图片描述

执行一次next()输出多少个元素:一个

case one 以迭代器的形式

it = iter([1,2,3,4,5]) # 以迭代器的形式
print(next(it,None))

在这里插入图片描述

case two 以列表形式作为输入: 不可以

it = [2,1,3,4,5]
print(next(it,None))

在这里插入图片描述

case three 以元组形式作为输入: 不可以

it = (1,2,3,4,5)
print(next(it,None))

在这里插入图片描述

case four : 利用iter + for 可以

it = iter([1,2,3,4,5])
a = next((name for name in it),None)
print(a)

在这里插入图片描述

case five: (name for name in a)的数据类型到底是什么?:generator

a = [1,2,3,4,5]
b = [4,5,6,7,8]
print(name for name in a if name not in b)
c = (name for name in a if name not in b)
print("the type of c:",type(c))
print("the output of next() function:",next(c,None))

在这里插入图片描述

本文地址:https://blog.csdn.net/csdnhuizhu/article/details/107268520

您对本文有任何疑问!!点此进行留言回复

推荐阅读

猜你喜欢

python 异常处理 StopIteration 用来作为迭代器的输出停止/next()

07-12

【人工智能与机器学习】创新性大作业--人脸口罩数据集的模型训练

07-12

利用python语言对xlsx批量转为csv文件

07-12

CSV读取与写入的常见问题(空行、BOM、r/w/a模式、指针)

07-12

荐 Python第二章 简单数据类型-字符串

07-12

python练习题_20200706

07-12

拓展阅读

大家都在看

Numpy用于数据存储和读取

12-06

python 异常处理 StopIteration 用来作为迭代器的输出停止/next()

07-12

OpenCV 画多边形 — cv.polylines()函数使用

10-06

ROS笔记——在conda的python3.7中使用ROS Kinetic

07-30

使用Keras加载含有自定义层或函数的模型操作

06-18

python 实现rolling和apply函数的向下取值操作

06-23

pycharm 2020 Error: failed to send plot to http://127.0.0.1:63342

07-30

使用Python来开发Markdown脚本扩展的实例分享

05-30

热门评论