Python循环时遇'TypeError: object type is not subscriptable'错误求解
问题分析与修正
错误原因拆解
- 第4行核心错误:
range是Python内置函数,调用必须用圆括号(),而非方括号[]。方括号用于序列(如列表)的索引操作,你用range[]相当于试图对range这个类型做索引,因此抛出TypeError: 'type' object is not subscriptable。 - 多余变量定义:
number = [10]完全没必要,for循环会自动将range中的每个值依次赋值给number,之前的定义会被覆盖。 - 错误循环范围:题目要求遍历
range(10)(即0到9的整数),但你写了range(1,10)(1到9),不符合题目要求。 - 无效的
number +=1:for循环会自动迭代range的下一个值,手动修改number会破坏循环的正常迭代逻辑,这行代码完全多余。 - 未执行的退出操作:
exit是函数,必须加括号写成exit()才会触发程序退出,否则只是引用函数对象,不会终止程序。
修正后的代码
guess_me = 5 # 遍历range(10),即0到9的整数 for number in range(10): if number < guess_me: print('too low') elif number == guess_me: print('found it!') break else: print('oops') exit()
运行逻辑验证
- 当
number为0到4时,打印too low - 当
number等于5时,打印found it!并通过break跳出循环 - 由于循环在
number=5时已终止,else分支(number>5的情况)不会被触发,完全符合题目要求
内容的提问来源于stack exchange,提问作者Altered_States
相关产品推荐
相关产品推荐

