可迭代对象
可迭代对象
对象内置有双下iter(__iter__)方法的都可以称为可迭代对象。 # 内置方法就是我们在.调出来的
可迭代对象范围
分为两种 一种是不可迭代对象,一种是可迭代对象
不可迭代对象: int float boll 函数对象
可迭代对象: str list dict tuple set 文件对象
可迭代可以理解称为for循环,只要可以for循环的对象,都是可迭代对象。
迭代 更新换代的意思。
迭代器对象
迭代器对象含义:
迭代对象调用__iter__生成的结果就是迭代器对象,无论调用几次 结果都是迭代器对象
特征:
含有__iter__ 或 __next__都属于迭代器对象
理解:
对于一些有序文件如 列表,字符串,元组,我们可以使用索引取值的方式取出,而字典,集合这写没有索引位的我们没办法用索引取值,有了迭代器以后就可以给字典和集合取值了。注意是取键。
代码:
name = 'ikun天下无敌', '练习时长两年半', '鸡你太美'
res = name.__iter__() # name可迭代对象用iter方法变身成为迭代器对象
print(res.__next__()) # 利用next方法取值
双下next方法一次只能取一个值。可以多次调用取值,取完值如果还有调用那么直接报错
简写代码:
name = 'ikun天下无敌', '练习时长两年半', '鸡你太美'
res = iter(name) # 转换成迭代器对象
print(next(res)) # ikun天下无敌
print(next(res)) # 练习时长两年半
print(next(res)) # 鸡你太美
for循环的本质
for循环的本质其实就是底层 走了迭代器方式
for 变量名 in 可迭代对象:
循环体代码
底层: 先将可迭代对象用__iter__方法转变成迭代器对象,依此将迭代器对象用__next__方法取值,直到__next__取不到值得时候,next会报错,namefor循环会自动捕获 根据 next的报错来 自动结束循环。
异常捕获/处理
当我们自己在写一段很长代码的时候,经常在运行的时候会报错,该报错可称为bug,代码运行中遇到报错就会终止整个代码的运行。代码报错有两种可能
1.语法错误 写字都写错了????
2.逻辑错误 在我们写代码时 有的时候很难找到逻辑错误,因为藏得很深,只有在执行代码时才会体现出来
怎么来看异常呢?
一段代码出现报错,pycharm会给我们返回一段红色的信息,此信息包含三个结构。
1. 错误代码的位置
2. 错误的类型
3. 发生错误的详情
我们可以根据错误代码位置快速找到该代码修改, 根据类型 和 详情判断是什么问题导致的。
"""如果出现多行报错那么只用看最近一行,因为上面的可能都是该行错误引起的"""
标签:__,迭代,对象,iter,next,报错,捕捉
From: https://www.cnblogs.com/LiaJi/p/16792007.html