语法
range([start,]stop[,step])
range 函数的区间范围是左闭右开,因此 stop 这最后一个数是取不到的。
- 该函数返回数值列表,该数值列表从 start 开始,以 step 为步长,于 stop 之前结束。默认取1。
- 如果 start 省略,则从 0 开始求值。如果以两个参数形式调用,则认作给定的参数是 start 和 stop 。
- 如果要定义步长就必须给出全部的三个参数。下面对 range() 函数的调用使用了值为正数的步长 step:
>>> range(5, 25, 5)
range(5, 25, 5)
>>> list(range(5, 25, 5))
[5, 10, 15, 20]
>>> range(10, 0, -1)
range(10, 0, -1)
>>> list(range(10, 0, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(25, 0, -5)
range(25, 0, -5)
>>> list(range(25, 0, -5))
[25, 20, 15, 10, 5]
>>> list(range(0, 10, -1))
[]
两种用法
step 若不指定,则默认为1。
range(20)
list(range(20))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
range(0, 20)
list(range(0, 20))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
注意
Python2中 range() 返回值是一个列表
Python3 中 range() 返回值是一个迭代对象,list(range(10)) 看出结果
练习题
实现输出 2-3+4-5+6…+100
思路:
range(2, 101)取 2-100 之间所有数,然后分别求奇偶和,以偶数之和减去奇数,得到最终结果。
#coding:gbk
even_sum = 0
odd_sum = 0
for item in range(2, 101):
if item % 2 == 0:
even_sum += item
else:
odd_sum += item
print(even_sum - odd_sum)