首页 > 编程语言 >python迭代器

python迭代器

时间:2022-10-14 17:44:53浏览次数:52  
标签:__ .__ 迭代 python iter 对象 print

目录

可迭代对象

1.定义
	对象内置有__iter__方法的都称为可迭代对象
	"""
	1.内置方法  通过点的方式能够调用的方法
	2.__iter__  双下iter方法
	"""
2.可迭代对象的范围
	不是可迭代对象
    	int float bool 函数对象
	是可迭代对象
    	str list dict tuple set 文件对象
3.可迭代的含义
	"""
	迭代:更新换代(每次更新都必须依赖上一次的结果)
		eg:手机app更新
	"""
	可迭代在python中可以理解为是否支持for循环
print('miku'.__iter__())
print([1].__iter__())
print({1}.__iter__())
print((1,).__iter__())
print({1: 'miku'}.__iter__())
# 调用双下iter方法会生成一个迭代器对象 # 结果如下

image

迭代器对象

1.迭代器对象
	是由可迭代对象调用__iter__方法产生的
	迭代器对象判断的本质是看是否内置有__iter__和__next__
2.迭代器对象的作用
	提供了一种不依赖于索引取值的方式
 	正因为有迭代器的存在 我们的字典 集合才能够被for循环
3.迭代器对象实操
	 s1 = 'hello'  # 可迭代对象
    res = s1.__iter__()  # 迭代器对象
    print(res.__next__())  # 迭代取值 for循环的本质
	 一旦__next__取不到值 会直接报错
4.注意事项
	可迭代对象调用__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身

可迭代对象和迭代器对象

  1. (可迭代对象) 通过(__iter__方法) 变身成 (迭代器对象)

image

  1. 迭代器对象调用__next__
iter_obj = 'hello'.__iter__()
print(iter_obj.__next__())  # h
print(iter_obj.__next__())  # e
print(iter_obj.__next__())  # l
print(iter_obj.__next__())  # l
print(iter_obj.__next__())  # o
print(iter_obj.__next__()) # 报错

for循环的本质

for 变量名 in 可迭代对象:
    循环体代码
"""
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获并处理
"""

异常捕获

1.异常
	异常就是代码运行报错 行业俗语叫bug
	代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中药尽可能避免
2.异常分类
	语法错误
    	不允许出现 一旦出现立刻改正 
	逻辑错误
    	允许出现的 因为它一眼发现不了 代码运行之后才可能会出现
3.异常结构
	错误位置
 	错误类型

如何看pycharm报错

def func(): # 调用次数过多报错
    func()

func() 
# 点击红色箭头指向的蓝色路径 可以跳转到错误的位置 
# 红色框内是python解释器为你提供的 报错原因
# 上面这么多蓝色路径 是由于你代码引发的python解释器内部的一些错误

image

标签:__,.__,迭代,python,iter,对象,print
From: https://www.cnblogs.com/passion2021/p/16792420.html

相关文章

  • Python基础15
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常今日内容详细重要内置函数1.zip() zip函数是可以接收多个可迭代对象,然后把每......
  • python学习记录——与C#的差异
    1.可存在同名对象classA:def__init__(self):print('thisisclass.')defA():print('thisismethod.')a=A()#thisismethod.由于python......
  • python学习记录——类
    一、创建类classPeople:passp=People()二、构造函数__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。......
  • 常见内置函数及可迭代对象
    目录重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常捕获/处理重要内置函数zipl1=[11,22,33,44,55]l2=['jason','kevin','oscar','jerry',......
  • python--第十五课
    昨日内容回顾作业讲解1.装饰器2.递归函数算法简介及二分法算法:解决问题的方法二分法:每次取一半defget_middle(l1,target_num):iflen(l1)==0:......
  • 10月14日内容总结——内置函数、可迭代对象和迭代器、异常捕获与处理
    目录一、重要内置函数1、zip2、filter3、sorted二、常见内置函数(了解)1、abs2、all3、any4、bytes5、bin、oct、hex、int6、callable7、chr、ord8、dir9、divmod10、enumera......
  • Python在Class中实现装饰器
    函数装饰器普通的装饰器较为简单,关键点只有两个,一个是闭包的概念,一个是函数作为参数进行传递,让我们先实现一个简单的装饰器。defhuat(f):deffunc():prin......
  • python:用backgroundRemover+imageMagick给人像照片更换背景色
    一,安装工具:1,安装backgroundremover:参考:https://www.cnblogs.com/architectforest/p/16790772.html2,安装imageMagick:参考:https://www.cnblogs.com/archit......
  • 解决/usr/bin/ld: 找不到 -lboost_python-py38
    编译caffe报错:CXXtools/convert_annoset.cppCXXtools/test_net.cppCXXtools/caffe.cppCXXtools/train_net.cppCXXtools/convert_imageset.cppCXXexamples/cpp_......
  • Python的re解析
    re模块re.findall(正则,字符串)返回包含所有符合要求的字符串的列表re.finditer(正则,字符串)返回包含所有符合要求字符串的迭代器(效率比列表高)re.search(正......