Python中range与len的区别及常见错误解析

顾言
顾言
发布时间:2026-10-15 | 5人浏览过
原创

本文详细解析Python中range与len函数的核心区别。介绍range的三种参数形式及len对字符串和列表的长度计算,重点剖析range(len())的使用场景与常见TypeError错误,并提供修正方案,帮助开发者写出更简洁高效的Python代码。

range(x)

range(9) 生成从 0 到 8 的整数序列,共包含 9 个元素。其等价于 range(0, 9),展开后为 [0, 1, 2, 3, 4, 5, 6, 7, 8]。

下面通过 for 循环打印 range(9) 的结果:

此外,range 还支持类似切片操作的两种参数形式:

分别为 range(start, stop) 和 range(start, stop, step)。

range(start, stop)

range(start, stop) 生成的序列等同于数组 [start, start+1, start+2, …, stop-1],即包含起始值 start,但不包含结束值 stop。

for i in range(3,8):
print(i)

range(start, stop, step)

range(start, stop, step) 生成的序列等同于数组 [start, start+step, start+step*2, …],直到数值大于或等于 stop 为止。

for i in range(3,8,2):
    print(i)

len()

len 是 length(长度)的缩写。len(x) 用于获取对象 x 的长度,x 可以是字符串(str)或列表(list/array),但不能是整数(int)或浮点数(float)。

演示 len 对字符串和列表的处理:

print("len('hello world')=",len("hello world!"))
print("len([0,1,2,3,4,5,6,7,8,9])=",len([0,1,2,3,4,5,6,7,8,9]))

len 不支持整数或浮点数类型。

print("len(12)=",len(12))
print("len(3.1415)=",len(3.1415))

range(len())

在 Python 循环中,range(len()) 的组合非常常见。从内向外分析,len() 先获取容器长度,range() 再基于该长度生成索引序列,逻辑清晰。

以下代码依次打印数组 a 中的每个元素:

a=[2,2,1,2,3,1]
for i in range(len(a)):
print(a[i])

实际上,我们无需使用 range(len()) 组合,也可以直接遍历数组以打印内容:

a=[2,2,1,2,3,1]
for i in a:
    print(i)

使用 range 时常见错误

TypeError: 'list' object cannot be interpreted as an integer

该错误提示意为“列表对象无法被解释为整数”。这说明 range(x) 的参数 x 必须是整数,而传入列表(list)会导致类型错误。

错误代码示例:

a=[2,2,1,2,3,1]
for i in range(a):
    print(i)

解决方法:

加上 len,尝试使用 range(len(x))。len(x) 会返回 x 的长度(整数值),从而满足 range 对整数参数的要求。

至此,关于 Python for 循环中 range 与 len 区别的介绍完毕。如需了解更多 Python for 循环相关内容,请搜索本站历史文章或继续浏览后续文章,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表