range()函数
1.range()函数的含义
range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start + step, start + 2 * step, ...]结构的整数序列;
2.range()函数的特性:
1.如果step参数缺省,默认1;如果start参数缺省,默认0。
2.如果step是正整数,则最后一个元素(start + i * step)小于stop。
3.如果step是负整数,则最后一个元素(start + i * step)大于stop。
4.step参数必须是非零整数,否则抛出VauleError异常。
注意:range函数返回一个左闭右开([left,right))的序列数
>>> range(5) [0, 1, 2, 3, 4] >>> range(2,5) [2, 3, 4] >>> range(1,10,2) #限定2步长 [1, 3, 5, 7, 9] >>> range(0,-10,-2) #限定2步长 [0, -2, -4, -6, -8] >>> range(1,-10,-2) [1, -1, -3, -5, -7, -9] >>> range(-1,-10,-2) #步长为负数 [-1, -3, -5, -7, -9] >>> range(-10,-2) [-10, -9, -8, -7, -6, -5, -4, -3] >>> range(-10,-1,2) #步长为正数 [-10, -8, -6, -4, -2] |
3.range函数通常结合for循环一起使用
>>> for i in range(1,3): //左闭区间右开区间 ... print i ... 1 2 >>> a=["a","b","c","d"] //从左向右占位从0开始算,从右往左占位从-1开始算 >>> for i in range(len(a)): //a的长度为4 ... print a[i] ... a b c d |
4.py2和py3中的range()函数区别
py2中的range()函数用法:
range()返回的是一个列表
>>> list=range(10) >>> print list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
py3中的range()函数用法:
range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
list() 函数是对象迭代器,把对象转为一个列表。返回的变量类型为列表。
>>> range(10) range(0, 10) >>> type(range(10)) <class 'range'> >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> type(list(range(10))) <class 'list'>
|
练习1:计算100以内的偶数相加
>>> total=0 >>> for i in range(0,100,2): ... total=total+i ... >>> print total 2450 |
练习2:有一个list,10个元素,请输出奇数坐标的元素
>>> list_one=list(range(10)) >>> coordinate=len(list_one) >>> while coordinate>0: ... coordinate-=1 ... if coordinate%2!=0: ... print (list_one[coordinate]) ... 9 7 5 3 1 |