Python中的常用內置對象之range對象


  range(start, stop[, step])  可生成滿足條件的數。具體來說是返回一個從start開始到小於stop的相鄰數的差step的等差數列列表。結果中包含start一直到小於stop的整數,其中start和step有默認值0和1,這兩個參數可以省略。

  Python的range對象可能是最常用的一個函數了,有了它,可以瞬間幫助工程師生成大量的數據,有了它我們就有了隨時隨地取用大量滿足條件數據的需求。就可以為我們創設各種各樣的數據場景。

Python文檔中的定義是:

range 類型表示不可變的數字序列,通常用於在 for 循環中循環指定的次數。

使用方法:

§ class range(stop)

§ class range(start, stop[, step])

  range 構造器的參數必須為整數(可以是內置的 int 或任何實現了 __index__ 特殊方法的對象)。如果省略 step 參數,其默認值為 1。如果省略 start 參數,其默認值為 0,如果 step 為零則會引發 ValueError。

生成內容為:

§ 如果 step 為正值,確定 range r 內容的公式為 r[i] = start + step*i 其中 i >= 0 且 r[i] < stop。

§ 如果 step 為負值,確定 range 內容的公式仍然為 r[i] = start + step*i,但限制條件改為 i >= 0 且 r[i] > stop.

§ 如果 r[0] 不符合值的限制條件,則該 range 對象為空。range 對象確實支持負索引,但是會將其解讀為從正索引所確定的序列的末尾開始索引。

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
>>> r.index(10)
5
>>> r[5]
10
>>> r[:5]
range(0, 10, 2)
>>> r[-1]
18

實戰:如何利用range()獲取一個數的所有約數

參考代碼1:

1 #一般用法
2 num = 65536
3 l = list()
4 for n in range(1,num+1):
5     if num % n==0:
6         l.append(n)
7 print(l)

參考代碼2:

1 #列表推導式用法
2 print([n for n in range(1,num+1) if num%n==0])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM