# 迭代其实就是更新换代,每一次迭代的过程都需要依赖于上一次的结果,单纯的循环不是迭代
eg:
n =1whileTrue:print(n)
n +=1# 这个函数就属于是迭代# 迭代取值
eg:l1 =[11,22,33,44,55]
n =0while n <len(l1):print(l1[n])
n +=1# 可迭代对象
内置有__iter__方法的都可以称之为是可迭代对象(__iter__读法:双下iter方法)# 可迭代的数据类型都是可for循环的数据类型,有字符串、列表、字典、元祖、集合、文件对象
不依赖for循环,完成对列表元素的取值
eg:l1 =[11,22,33,44,55,]
res = l1.__iter__()
n =0while n <len(l1):print(res.__next__())
n +=1# for循环底层原理:for 变量名 in 可迭代对象:
循环体代码
1.会将in后面的数据调用__iter__()变成迭代器对象
2.针对产生的迭代器对象依次调用__next__()方法迭代取值
3.取完所有值之后就会自动处理报错并退出循环
eg:res = l1.__iter__()whileTrue:print(res.__next__())
1.结合else使用(当try检测的代码没有发生异常,正常运行完之后会执行else的子代码)
try:
可能会出错的代码
except Exception as e:
统一的处理措施
else:
没有出错的代码,然后执行else子代码
2.结合finally使用(无论try检测的代码是否有异常,最后都会执行finally子代码)
try:
name
except Exception as e:print(e)finally:3.全部整合到一起使用
try:
name
except Exception as e:print(e)else:print('没报错 好极了')finally:print('管你错不错 都执行')4.主动报错
raise NameError('就要作')
for循环的本质
利用while与异常捕获 实现for循环的功能
info ={'name':'jason','age':18,'pwd':123}# 1.先转换成迭代器对象# res = info.__iter__()
res =iter(info)# 2.迭代取值whileTrue:# print(res.__next__())try:print(next(res))except StopIteration as e:# 结束while循环break
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人