Python 隨機模塊允許生成隨機數。生成的數字是一系列基於所用函數的偽隨機數。random
模塊中使用不同類型的函數來生成隨機數,例如 random.random()、random.randint()、random.choice()、random.randrange(開始、停止、寬度)等等。
在這裡,我們將討論隨機模塊的隨機範圍()功能。隨機範圍()函數用於在其參數的指定範圍之間生成一個隨機數。它接受三個參數:起始數字、停止數字和寬度,用於跳過範圍內的數字。
random.randrange()的語法
random.randrange(start, stop[, width])
random . randrange()函數返回給定範圍內的隨機整數,即開始和停止。random . range()功能以三個參數作為輸入啟動、停止、寬度。在這三個參數中,兩個參數 開始 和 寬度 是可選的。
- 起始參數是隨機範圍內的起始或下限整數。如果參數中沒有傳入 start 參數,它將採用默認值 0(零)。
- A stop 參數是隨機範圍內的最後一個數字或上限整數。
- 寬度參數是隨機序列中每個數字之間的範圍。此參數是可選的,如果寬度參數沒有傳入參數,它將採用默認值 1(一)。
隨機範圍(開始、停止、寬度) 函數在生成隨機整數時不包含結束參數。 停止 參數是獨佔,不是隨機生成的。
看看這個 random range(3,30,3)函數,它會生成 3 到 30 之間的任何隨機整數值,比如 3,6,9,12,…27。但是這個函數在生成隨機數時從不包含 30。
在應用中生成隨機數一直很重要,它在日常生活中有幾種實時用途。例如,生成一個隨機數並將其作為一次性密碼發送給客戶,以進行安全交易。另一個生成隨機數的例子是在玩 ludo 遊戲時生成隨機骰子數。
示例 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 的隨機數,請在 【隨機範圍() 函數中輸入開始和停止參數,作為 3 位數長度的最小數(100)和 4 位數長度的最小數(1000),因為它生成 100 到 999 的 3 位數形式的隨機數,其中不包括 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() 函數中傳遞的參數 start 和 stop 必須是遞增的順序,如 random.randrange(5,10) 或 random.randrange(-20,-10) 。啟動參數始終小於停止參數;否則,此函數會生成一個錯誤作為“回溯(最近一次調用最後一次)”,並為 rand range()”提升 ValueError 空範圍。
例如:
看看這個例子,我們違反了規則,在random . randrange()函數中傳遞了大於 stop 參數的 start 參數,這將生成如下錯誤消息:
import random
randomNumber = random.randrange(10,5)
輸出:
Python 的隨機模塊的其他一些用於隨機生成數字的功能有:
- 選擇()
- 邊緣()
- 樣品()
- 排序()
random.choice()
Python 隨機模塊有一個 choice() 功能,用於從列表或其他序列中選擇一個隨機元素。一個 random.choice() 函數用於從值列表中返回一個隨機元素。
ram DOM . choice()的語法
random.choice(sequence)
或者
random.choices(sequence, k=l)
這裡的參數序列可以是字符串、列表、元組, random.choice() 只有一個隨機元素。
在 random.choices() 函數中 k 是要返回的元素數量。假設我們沒有提到 k 參數的值 random.choices() 從序列或列表中返回一個項目。
例 1:
在這個例子中,我們提供了 on sequence (list)作為參數,並返回了一個隨機元素。
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() 函數取兩個參數啟動為起始範圍,停止為終止範圍。生成隨機數時包括兩個參數(開始、停止)。
生成隨機整數列表的例子
本示例將使用 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() 函數。
隨機. sample()
在上面的例子中,可能存在 random.randint() 從列表中生成重複隨機數的可能性。如果要從列表中生成唯一的隨機數,請使用 random.sample() 函數。
random.sample() 函數從集合、列表和其他序列中生成唯一的元素。Python 的 random.sample()函數允許對列表範圍內的多個元素進行隨機採樣,而無需複製。
從沒有重複的列表中生成隨機元素的 random.sample()示例:
在這個例子中,我們將生成 10 個範圍從 0 到 100 的隨機整數。
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(範圍(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]
列表排序()
Python sort() 函數用於對列表的隨機整數進行升序排序(默認)。我們也可以通過指定列表值的順序反向=真來對列表值進行降序排序。倒車的默認值為假。
示例 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]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311563.html