先列幾個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次,然后進行判斷並且打印所有約數