迭代:迭代的意思就是更新换代,每次的更新都必须依赖上一次的结果
迭代其实给我们提供了一种不依赖索引取值的方式
可迭代对象:
内置有 _ _ iter _ _方法的都称为可迭代对象
有字符串、列表、元组、字典、集合、文件对象
迭代器对象:
内置有 _ _iter _ _ 方法,又含有 _ _next _ _方法称为迭代器对象
文件本身即是可迭代对象,也是迭代器对象
可迭代对象调用_ _iter _ _方法就会变成迭代器对象
迭代器对象在执行_ _next _ _方法就相当于遍历了一次对象,遍历完再执行会出错
实例如下:
# 列表举例 l = [1,2,3,4] # 转换成迭代器对象 res = l.__iter__() print(res.__next__()) print(res.__next__()) print(res.__next__()) print(res.__next__()) '''等于遍历了4次列表''' # 如果再遍历一次就会出错 print(res.__next__()) #出错:StopIteration # 区分开 l = [1,2,3,4] # 这样用于取得就是第一个元素 print(l.__iter__().__next__()) print(l.__iter__().__next__()) print(l.__iter__().__next__()) print(l.__iter__().__next__()) print(l.__iter__().__next__()) print(l.__iter__().__next__())
# 演示for循环的底层原理 '''从可以遍历>>>>>遍历结束不报错''' l1 = [1,2,3,4,5,6,7,8,9,11,22,33,44,55] # 要求:循环打印出列表中每个元素 但是不能使用for循环 __next__() # 转换成迭代器对象 res = l1.__iter__() # 没有自动捕获该错误并处理版本 # while True: # print(res.__next__()) # 升级,可以正常退出 n = 0 while n<len(l1): print(res.__next__()) n+=1 # 可以捕获异常,并处理 while True: try: print(res.__next__()) except Exception: print('for循环结束') break
由上面可知,异常处理的重要性,推出下面的异常处理初始!
调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正;另一方面,有些异常是不可避免的,但我们可以对异常进行捕获处理,防止程序终止。
异常的组成:
异常错误的分类:
实例如下:
if 1>2 for i in rage(10) '''类似这种没有加冒号,缺胳膊断腿的操作属于语法错误''' SyntaxError: invalid syntax
逻辑错误
可以被允许的 出现了之后尽快修改即可
修改逻辑错误的过程其实就是在从头到尾理清思路的过程
逻辑错误包括了名字错误,值错误等······
详细错误类型点这了解