random 為產生擬隨機數 (pseudo-random number) 的模組 (mudule) ,有以下常用的函數 (function) 可以產生擬隨機數
函數 | 說明 |
---|---|
randint(a, b) | 回傳從 a 到 b 之間的整數。 |
choice(seq) | 回傳從 seq 中的任一元素。 |
shuffle(x[, random]) | 攪亂 x 中元素的順序。 |
random() | 回傳 0 到 1 之間的數字。 |
亂數又可稱之為隨機數,然而電腦產生的隨機數要在前面加上「擬」字,這是因為由電腦產生的亂數是由演算法 (algorithm) 計算得來的,因此如果條件相同,例如以時間當參數,就會產生一樣的亂數列表,所以電腦產生的亂數在數學上並不是真正的亂數。
以下利用 randint() 產生三個不同範圍的擬隨機數
from random import randint
a = randint(1, 9)
print(a)
b = randint(10, 99)
print(b)
c = randint(100, 999)
print(c)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:rdemo01.py
# 功能:示範 ramdon 模組
# 作者:張凱慶
於命令列執行以上程式
$ python3 rdemo01.py |
2 |
87 |
578 |
$ |
shuffle() 又稱為洗牌演算法,以下程式建立一組 52 張撲克牌後,利用 shuffle() 洗牌,然後發出 5 張牌
from random import shuffle
suit = ["♠️", "♥️", "♦️", "♣️"]
order = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
deck = []
for i in suit:
for j in order:
deck.append(i + j)
shuffle(deck)
print(deck.pop())
print(deck.pop())
print(deck.pop())
print(deck.pop())
print(deck.pop())
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:rdemo02.py
# 功能:示範 ramdon 模組
# 作者:張凱慶
於命令列執行以上程式
$ python3 rdemo02.py |
♣️6 |
♦️4 |
♣️K |
♥️10 |
♣️8 |
$ |
相關教學影片