使用for循环时报错'type' object is not subscriptable问题求助
报错原因
- 核心触发点是
range[4]的错误写法:range是Python的内置类型,只有列表、字符串这类支持下标访问的对象才能用[]取值,对类型对象直接使用[]就会抛出'type' object is not subscriptable错误。调用range生成指定范围的整数序列,需要使用圆括号,写为range(4)。 - 代码还有两处额外语法问题:
- for循环行开头多了不必要的缩进,Python对缩进规则要求严格,和
l=[]同级的循环不需要提前缩进,否则会触发缩进报错。 - 如果这段代码没有写在自定义函数内部,
return(l)属于非法语法,不需要return语句,直接访问变量l即可拿到最终结果。
- for循环行开头多了不必要的缩进,Python对缩进规则要求严格,和
修正后代码
l = [] for i in range(4): l.append(i) print(l)
运行后输出[0, 1, 2, 3],符合将0到3的数字添加到列表的需求。如果追求简化,也可以直接用l = list(range(4))一行代码生成目标列表,不需要手动写循环追加元素。
内容的提问来源于stack exchange,提问作者Keerti
相关产品推荐
相关产品推荐

