Python random 模塊允許生成隨機數。生成的數字是一係列偽隨機數,它們基於所使用的函數。 random 模塊中使用了不同類型的函數來生成隨機數,例如 random.random()、random.randint()、random.choice()、random.randrange(start, stop, width) 等等。
在這裏,我們將討論隨機模塊的 randrange() 函數。 randrange() 函數用於在其參數中的指定範圍之間生成一個隨機數。它接受三個參數:起始編號、停止編號和寬度,用於跳過範圍內的數字。
random.randrange() 的語法
random.randrange(start, stop[, width])
random.randrange() 函數返回給定範圍內的隨機整數,即開始和停止。 random.randrange() 函數采用三個參數作為輸入開始、停止和寬度。在這三個參數中,兩個參數 start 和 width 是可選的。
- start 參數是一個隨機範圍內的起始或下限整數。如果 start 參數未傳入參數,則采用默認值 0(零)。
- 停止參數是隨機範圍內的最後一個數字或上限整數。
- width 參數是隨機序列中每個數字之間的範圍。該參數是可選的,如果參數中沒有傳入寬度參數,則取默認值1(一)。
randrange(start, stop, width) 函數在生成隨機整數時不包括結束參數。 stop 參數是獨占的,它不是以隨機數生成的。
看看這個 random.randrange(3, 30, 3) 函數,它將生成 3 到 30 之間的任何隨機整數值,如 3, 6, 9, 12, ‌27。但是這個函數在生成隨機數時從不包含 30。
在應用程序中生成隨機數一直很重要,它在 day-to-day 生活中有幾個實時用途。例如,生成隨機數並將其作為 OTP (one-time-password) 發送給客戶以進行安全交易。另一個生成隨機數的例子是在玩 ludo 遊戲時使用生成隨機骰子數。
Example 1:random.randrange() 生成一個給定範圍內的隨機整數
讓我們看一個例子,我們在給定範圍內生成一個隨機整數。此示例顯示了 random.randrange() 函數的所有不同形式。
import random
print("Generating random number within a given range ")
# Random number between 0 and 29
number1 = random.randrange(30)
print("Random integer:", number1)
# Random number between 10 and 29
number2 = random.randrange(10, 30)
print("Random integer:", number2)
# Random number between 25 and 200 divisible by 5
number3 = random.randrange(25, 201, 5)
print("Random integer:", number3)
輸出:
例2:生成n的隨機整數範圍(倍數)
讓我們生成 5 到 100 之間的隨機整數,即 5 的範圍,例如 5, 10, 25, ‌, 90, 95。
import random
#print "Random number range (multiple) of 5"
number = random.randrange(5, 100, 5)
print("Random number range (multiple) of 5 is ", number)
輸出:
例3:生成特定長度的隨機整數
您還可以生成特定長度的隨機整數。如果要生成長度為 3 的隨機數,請在 randrange() 函數中輸入 start 和 stop 參數為 3 位長度的最小數(100)和 4 位長度的最小數(1000),因為它會生成 3 位的隨機數表格 100 到 999,其中不包括 4 位數字 (1000)。
示例:使用 random.randrange() 生成一個 3 位的隨機數
import random
number1 = random.randrange(100, 1000)
print("First random number of length 3 is:", number1)
number2 = random.randrange(100, 1000)
print("Second random number of length 3 is:", number2)
輸出:
First random number of length 3 is:813 Second random number of length 3 is:770
示例 4:生成隨機負整數:
讓我們看一個生成 -50 到 -10 之間的隨機負整數的示例。
import random
randomNagativeInteger = random.randrange(-50, -10)
print("Random negative integer number between -50 to -10")
print("Random negative integer number between -50 to -10 is:",randomNagativeInteger)
輸出:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
示例 5:生成隨機正整數或負整數
import random
number1 = random.randrange(-5, 5)
print(number1)
number2 = random.randrange(-5, 5)
print(number2)
輸出:
-5 0
注意參數開始和停止, 傳入random.randrange()函數必須按遞增順序排列,例如random.randrange(5, 10)或者random.randrange(-20, -10)。這開始參數總是小於停止參數;否則,這個函數會產生一個錯誤“回溯(最近一次調用最後一次)並提高 randrange() 的 ValueError 空範圍”。
例如:
看看這個例子,我們通過在 random.randrange() 函數中傳遞大於 stop 參數的 start 參數來違反規則,這會生成一條錯誤消息:
import random
randomNumber = random.randrange(10,5)
輸出:
Python 的 random 模塊的其他一些用於隨機生成數字的函數是:
- choice()
- randint()
- sample()
- sort()
random.choice()
Python random 模塊有一個 choice() 函數,用於從列表或其他序列中選擇隨機元素。 random.choice() 函數用於從值列表中返回隨機元素。
ramdom.choice() 的語法
random.choice(sequence)
或者
random.choices(sequence, k=l)
這裏的參數序列可以是字符串、列表、元組和隨機。choice() 隻是單個隨機元素。
在 random.choices() 函數中,k 是要返回的元素數。假設我們沒有提到 k 參數的值 random.choices() 從序列或列表中返回單個項目。
範例1:
在這個例子中,我們將序列(列表)作為參數提供並返回單個隨機元素。
import random
listValue = [5,10,15,20,25,30]
item = random.choice(listValue)
print("random item from list is:", item)
輸出:
random item from list is: 10
範例2:
random.choices() 函數主要用於返回具有各種可能性的隨機元素。該函數還對隨機選擇的數量進行加權(k)。例如,我們想從 5 個電影的列表中打印 3 個隨機電影名稱。
import random
movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic']
randomMovies = random.choices(movieList, k=3)
print("random movies from list are:", randomMovies)
輸出:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
random.randint()
Python random.randint() 函數用於生成指定範圍內的隨機整數。
用法:
random.randint(start, stop)
random.randint() 函數有兩個參數 start,這是一個開始範圍,和 stop,這是一個結束範圍。生成隨機數時包括兩個參數(開始、停止)。
random.randint() 生成隨機整數列表的示例
此示例將使用 randint() 函數創建多個隨機整數的列表。生成 1 到 100 之間的 5 個隨機整數的列表,兩個值都包含在內。
import random
randomListValue = []
# specifing length of list equal to 5
for i in range(0, 5):
# generates random numbers from 1 to 100
randomListValue.append(random.randint(1, 100))
print("Printing list of 5 generated random numbers")
print(randomListValue)
輸出:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
但是,random.randint() 函數可能會在輸出結果中返回重複的數字。為了避免結果中出現重複的隨機整數,請使用 random.sample() 函數。
random.sample()
在上麵的例子中,可能存在 random.randint() 從列表中生成重複隨機數的可能性。如果要從列表中生成唯一的隨機數,請使用 random.sample() 函數。
random.sample() 函數從集合、列表和其他序列中生成唯一元素。 Python 的 random.sample() 函數允許從列表中隨機抽取一個範圍內的多個元素而不會重複。
random.sample() 從列表中生成隨機元素的示例,沒有重複項:
在本例中,我們將生成 0 到 100 範圍內的 10 個隨機整數。
import random
# Generate 10 unique random numbers within a range
randomList = random.sample(range(0, 100), 10)
print(randomList)
輸出:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
如果你想生成一個隨機數列表,並且每個隨機數都必須是'n'的倍數,那麽使用range()函數的step參數。
例如,使用 random.sample(range(0, 100, 5), 10) 生成 10 個隨機整數,它們是 0 到 100 範圍內 5 的倍數。
import random
# Generate 10 unique random numbers within a range
randomList = random.sample(range(0, 100, 5), 10)
print(randomList)
輸出:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
列表 sort()
Python sort() 函數用於按升序對列表的隨機整數進行排序(默認情況下)。我們還可以通過指定 order reverse = True 來按降序對列表值進行排序。 reverse 的默認值為 False。
示例 1:sort() 按升序排列列表元素
在這個例子中,我們將生成一個隨機列表,其中包含 50 到 100 範圍內的 5 個數字,寬度為 5,並使用 sort() 函數對它們進行排序。
import random
randomList = random.sample(range(50, 100, 5), 5)
print("Before sorting random integers list")
print(randomList)
# sort the list ascending order by default
randomList.sort()
print("After sorting random integers list")
print(randomList)
輸出:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
示例 2:sort() 按降序排列列表元素
在這個例子中,我們將使用 randomList.sort(reverse=True) 按降序對列表元素進行排序。
import random
randomList = random.sample(range(50, 100, 5), 5)
print("Before sorting random integers list")
print(randomList)
# sort the list descending order
randomList.sort(reverse=True)
print("After sorting random integers list")
print(randomList)
輸出:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]
相關用法
- Python random.getstate()用法及代碼示例
- Python random.triangular()用法及代碼示例
- Python random.gammavariate()用法及代碼示例
- Python random.random()用法及代碼示例
- Python random.normalvariate()用法及代碼示例
- Python random.getrandbits()用法及代碼示例
- Python random.weibullvariate()用法及代碼示例
- Python random.lognormvariate()用法及代碼示例
- Python random.setstate()用法及代碼示例
- Python random.vonmisesvariate()用法及代碼示例
- Python random.gauss()用法及代碼示例
- Python random.seed( )用法及代碼示例
- Python random.expovariate()用法及代碼示例
- Python random.sample()用法及代碼示例
- Python random.shuffle()用法及代碼示例
- Python random.betavariate()用法及代碼示例
- Python random.paretovariate()用法及代碼示例
- Python numpy matrix rand()用法及代碼示例
- Python randint()用法及代碼示例
- Python numpy matrix randn()用法及代碼示例
注:本文由純淨天空篩選整理自 Python random randrange()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。