1.用生成器完成自定义range方法,可以完成系统range的所有功能
def my_range(start, end=None, step=1):
if end is None:
start, end = 0, start
n = start
while True:
normal = n >= end and step > 0
abnormal = n <= end and step < 0
if normal or abnormal:
break
yield n
n += step
# for i in my_range(10):
# print(i)
2.生成器完成自定义enumerate⽅法,也可以为可迭代对象提供索引支持
不判断,和系统一样,传非迭代对象抛异常
def my_enumerate(target, start=0):
for i in target:
yield (start, i)
start += 1
def my_enumerate2(target, start=0):
try:
for i in target:
yield (start, i)
start += 1
except Exception:
print("不是可迭代对象,不能处理")
# for v in my_enumerate2(43214):
# print(v)
#参考答案
def my_enumerate(iterable, start=0):