可迭代对象
可迭代对象的定义:内置有__iter__()方法的都可以称之为是可迭代对象。
可迭代对象有:字符串、列表、元组、字典、集合等
迭代器对象
迭代器对象:迭代器
迭代器对象的定义:
既内置了__iter__()方法,又内置了__next__方法就是迭代器对象
迭代器是一种不依赖于索引取值的方式
一次调用可供持续取值,重新调用则会重置
l1 = [11, 33, 44, 5, 66] res = l1.__iter__() print(res.__next__()) # 11 print(res.__next__()) # 33 print(l1.__iter__().__next__()) # 11
异常捕获
异常就是错误发生的信号,如果不做处理,后面的程序就无法正常运行1.异常分类
1.Traceback
是异常位置所在处,可以直接定位到异常发生的位置
2.XXXError
错误的类型
3.XXXError后面的详细信息
错误的描述,一般我们直接看错误的详细信息都可以定位原因
4.异常的类型
1.语法错误:坚决不允许,容易解决,借助于pycharm工具就可以很容易的定位到
2.逻辑错误:是允许出现的,但是我们在写代码的时候,尽量的避免逻辑错误
2.XXXError错误类型
1.NameError 变量名错误
2.IndexError 索引错误
3.KeyError 取值错误
4.ZeroDivisionError
3.解决错误
预测可能出现的错误提前解决让代码正常运行
"""
语法结构:
try:
被监测的代码:一般是可能会发生的错误
except 错误类型1 as e:
print(e)
except Exception as e: # 能够接收所有的错误类型
print(e)
else:
# 有异常时不执行,不能和try 单独使用
finally:
# 不管有无异常都会执行
"""
assert :断言你一定是正确的,成功的,可行的
# assert 条件 # 条件必须成立,如果不成立,代码在这一行直接中断
for 循环原理
测试题(不用for 打印列表内容)
方法1.while循环
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] res = l.__iter__() while True: try: print(res.__next__()) # 打印列表所有值 except Exception: # 直到读取完报错时,跳出循环结束读取 break
方法2.递归函数
l = [1, 2, 3, 4, 5, 6] res = l.__iter__() def a(x): try: print(x.__next__()) except StopIteration: return a(x)
for循环的本质:
1.先把关键字in后面的变量调用__iter__()方法变成迭代器对象
2.内部开始循环__next__()取值
3.当值取完之后代码会报错,一旦报错,我们做异常处理直接结束掉循环
标签:__,.__,迭代,错误,iter,捕捉,print,异常 From: https://www.cnblogs.com/Lucky-Hua/p/17458942.html