當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python random randrange()用法及代碼示例


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)

輸出:

Python random randrange()

例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)

輸出:

Python random randrange()

例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 randrange()

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 randrange()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。