You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Udacity Python课程自定义enumerate生成器提交报错如何解决

代码错误原因分析
  • 硬编码全局变量lessons:你的函数实现里用了range(len(lessons)),直接读取全局作用域的lessons列表,没有使用参数传入的iterable。如果平台测试时传入其他可迭代对象,代码会直接运行错误,只有在全局刚好存在lessons变量的场景下才能正常运行。
  • 未正确使用start参数:你把循环变量命名为start,直接覆盖了函数接收的start参数值,导致传入的起始值完全失效。你当前传1刚好输出正确是巧合:你循环里取的索引是04,再手动+1得到15,刚好匹配这次调用的预期,要是调用时传start=3,输出的序号还是1~5,完全不符合要求。
  • 不支持非序列类型的可迭代对象:你用下标iterable[start]的方式读取元素,只能适配列表、元组这类支持索引访问的序列,对于集合、生成器这类没有索引的可迭代对象会直接报错,不符合内置enumerate的通用实现要求。

正确实现参考
lessons = ["Why Python Programming", "Data Types and Operators", "Control Flow", "Functions", "Scripting"]

def my_enumerate(iterable, start=0):
    count = start
    for item in iterable:
        yield count, item
        count += 1

for i, lesson in my_enumerate(lessons, 1):
    print("Lesson {}: {}".format(i, lesson))

内容的提问来源于stack exchange,提问作者Aleeng730

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:36:01