目录
  • range(x)
  • range(start,stop)
  • range(start,stop,step)
  • len()
  • len不支持 int 或者float
  • range(len())
  • 用range常见错误

range(x)

range(9) 代表着0、1、2、3、4、5、6、7、8 这九个顺序数字的集合。
也就是 range(9) => range(0,9) => [0,1,2,3,4,5,6,7,8]

我们尝试用 for 打印 range(9):

pythonfor循环中range与len区别

此外,range还有另外两种用法,形如切片:

range(start,stop) 以及 range(start,stop,step)

range(start,stop)

range(start,stop) 等同于数组 [start,start+1,start+2,…,stop]

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

pythonfor循环中range与len区别

range(start,stop,step)

range(start,stop,step) 等同于数组 [start,start+step,start+step*2,…, stop]

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

pythonfor循环中range与len区别

len()

len全称为length,意为长度。
len(x),x可以为字符串str,也可以为数组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]))

pythonfor循环中range与len区别

len不支持 int 或者float

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

pythonfor循环中range与len区别

pythonfor循环中range与len区别

range(len())

在python循环中常常会见到range(len()),这种组合从里到外分析可以很清晰的理解:

依次打印出数组a中内容:

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

pythonfor循环中range与len区别

但是其实我们可以不用range(len())组合,也可以按照要求打印出:

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

pythonfor循环中range与len区别

用range常见错误

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

翻译过来,其意思是 数组list 不能解释为整数,就是说 range(x) 的 x 必须是整数,而此时是list,非法。

错误范例:

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

pythonfor循环中range与len区别

解决办法:

加上len,尝试用range(len(x))
len(x)将获取x的长度,len(x)的值为整数值,为x中内容或者x的长度的值。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。