迭代器,生成器
1. 使用while循环+异常处理+迭代器对象,完成for循环迭代取值的功能
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
# 1.先将列表用__iter__转换为可迭代对象 inte_l1 = l1.__iter__() # 2.while循环让迭代器对象反复执行__next__()操作 while True: try: print(inte_l1.__next__()) except StopIteration as e: break
2. 自定义生成器对标range功能(一个参数 两个参数 三个参数 迭代器对象)
for i in range(1, 10): print(i)
(1)两个参数的
def my_range(start_num,end_num): while start_num < end_num: yield start_num start_num += 1 res = my_range(1,10).__iter__() while True: try: print(res.__next__()) except StopIteration: break
(2)一个参数的
def my_range(start_num, end_num=None): # 判断end_num是否有值,没有值说明用户只给了一个值,起始数字应该是0,终止位置应该是传的值 if not end_num: end_num = start_num start_num = 0 while start_num < end_num: yield start_num start_num += 1 for i in my_range(10): print(i)
(3)三个参数的
def my_range(start_num, end_num=None, step=2): # 判断end_num是否有值,没有值说明用户只给了一个值,起始数字应该是0,终止位置应该是传的值 if not end_num: end_num = start_num start_num = 0 while start_num < end_num: yield start_num start_num += step for i in my_range(10): print(i)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人