1. 程式人生 > >關於python函式range(),xrange(),randrange(),randint()

關於python函式range(),xrange(),randrange(),randint()

1. range()

python range() 函式可建立一個整數列表,一般用在 for 迴圈中。

函式語法 range(start, stop[, step])

返回值:range

引數說明: start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5); stop: 計數到 stop 結束,**但不包括 stop。**例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5 step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)

注意: Python3 range() 函式返回的是一個可迭代物件(型別是物件),而不是列表型別, 所以列印的時候不會列印列表。

Python3 list() 函式是物件迭代器,可以把range()返回的可迭代物件轉為一個列表,返回的變數型別為列表。

Python2 range() 函式返回的是列表(與別與xrange(),python3中把xrange()取消,range()的功能取代了xrange())

2. xrange():

python2中range()直接返回值是list,比較佔記憶體,xrange()返回生成器,python3中直接用range()取代了xrange()的功能,不再有直接返回list。

3.randrange(): randrange()是python3內建random模組下的一個生成隨機數的函式,引數與range()相同,其功能相當於choice(range(start, stop, step)),但並不實際產生range物件,該函式返回值型別是int。

以下是官方文件的解釋: random.randrange(start, stop[, step]) Return a randomly selected element from range(start, stop, step). This is equivalent to choice(range(start, stop, step)), but doesn’t actually build a range object.

The positional argument pattern matches that of range(). Keyword arguments should not be used because the function may use them in unexpected ways.

Changed in version 3.2: randrange() is more sophisticated about producing equally distributed values. Formerly it used a style like int(random()*n) which could produce slightly uneven distributions.

4.randint(a,b) 這裡附帶介紹一下與randrange()功能近似的randint()函式,同樣是從一個連續陣列中產生一個隨機數的函式,但引數與range()不一樣。N = random.randint(a, b),N在此處的選擇範圍是a <= N <= b,是包含b的,選擇randint()時要多加註意。 因此從功能上 randint(a,b) == randrange(a,b+1)