先列几个range()函数的几个用法:
函数原型:range(start, end, scan):
参数含义:
start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
坑人的现象:
- for i in range(5):
- print i
- i += 2
- print i
- print '一轮结束'
结果:
因为在for循环中,实际上是根据range的值对i进行了赋值操作,所以不论在for中如何更改i的值,在下一次循环前,i的值都会重新赋值,所以这个循环一共执行5次。
而不是:
要想获取上面的效果,代码如下:
- i = 0
- while i < 5:
- print i
- i += 2
- print i
- print '一轮结束'
如何利用range()获取一个数的所有约数:
shu=10000
result=[a for a in range(1,shu+1) if shu%a==0]
print(result)
从1到10000,循环一共执行了1000次,然后进行判断并且打印所有约数