1. 程式人生 > 程式設計 >Python使用random模組生成隨機數操作例項詳解

Python使用random模組生成隨機數操作例項詳解

本文例項講述了Python使用random模組生成隨機數操作。分享給大家供大家參考,具體如下:

今天在用Python編寫一個小程式時,要用到隨機數,於是就在網上查了一下關於Python生成各種隨機數的方法,現將其總結如下:

此處,利用Python中的random模組生成隨機數。因此首先必須匯入該模組:import random

一. 隨機產生一個元素

import random
#生成一個0到1的隨機浮點數: 0 <= n < 1.0
print(random.random())
>>> 0.8296185863491462

#生成一個指定範圍內的隨機符點數,兩個引數其中一個是上限,一個是下限。
#如果a > b,則生成的隨機數n: a <= n <= b。如果 a <b, 則 b <= n <= a。
#函式原型為:random.uniform(a,b)
print(random.uniform(1,10))
>>> 8.257312492950838

#生成一個指定範圍內的整數。其中引數a是下限,引數b是上限,
#生成的隨機數n: a <= n <= b,函式原型為:random.randint(a,b)
#注意:此處要求 a<=b
print(random.randint(1,10))
>>> 3

#從指定範圍內,按指定基數遞增的集合中獲取一個隨機數
#函式原型為:random.randrange(start,stop,step)
#如產生一個0-10的隨機數,其步長為2,即[0,2,4,6,8],然後在隨機取出一個隨機數
print(random.randrange(0,10,2))
>>> 2

#從序列中獲取一個隨機元素。 函式原型為:random.choice(sequence)
#注意:sequence在python不是一種特定的型別,而是泛指一系列的型別;
#注意:list,tuple,字串都屬於sequence。
print(random.choice( ['apple','pear','peach','orange','lemon'] ))
print(random.choice( ('1','2','3','4','5') ))
print(random.choice( [1,3,5] ))
>>> orange
>>> 2
>>> 2

#用於將一個列表中的元素打亂。 函式原型為:random.shuffle(x[,random])
p = ["Python","is","powerful","simple","and so on..."]
random.shuffle(p)
print(p)
>>> ['Python','is','simple','powerful','and so on...']

#從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列。
#如果k大於sequence元素個數的話會報錯。 函式原型為:random.sample(sequence,k)
list = [1,5,7,8,9]
print(random.sample(list,2))
print(random.sample(list,5))
>>> [5,3]
>>> [9,3]

二.產生一個隨機陣列

import numpy as np
#例如產生一個隨機陣列array
#方法一:
a = np.array([2,1,9,0])
print(a)
>>> array([2,0])

#產生一個(0,1)之間的10維的隨機陣列
#方法二;
b = np.random.rand(10)
print(b)
>>> array([ 0.43634533,0.00256198,0.9252553,0.46312913,0.18253324,0.70458872,0.79719794,0.18972441,0.5304701,0.11495708])

#產生一個(0,1)之間的10維的隨機陣列
#方法三;
c = np.random.random(10)
print(c)
>>> array([ 0.62725822,0.69752737,0.67910128,0.32876791,0.05591991,0.71435415,0.62612756,0.10492805,0.45868039,0.66527572])

#產生一個(0,1)之間的 3*4 的陣列矩陣
#方法三;
d = np.random.random(size = (3,4))
print(d)
>>> array([[ 0.81287511,0.07447028,0.83052561,0.69899251],[ 0.30087294,0.24102044,0.2261788,0.7931203 ],[ 0.10688122,0.93165383,0.02486699,0.66883373]])

三.隨機產生一個list或tuple

import random
#例如隨機產生一個指定範圍的整數list或tuple
#方法一:
a = [random.randint(0,5) for i in range(20)]
print(a)

#方法二;
for _ in range(10):
  b = random.randint(0,5)
  print(b)

結果為:

[5,0]
4
2
1
1
3
0
5
4
4
5

PS:這裡再提供幾款相關工具供大家參考使用:

線上隨機數生成工具:
http://tools.jb51.net/aideddesign/rnd_num

線上隨機生成個人資訊資料工具:

http://tools.jb51.net/aideddesign/rnd_userinfo

線上隨機字元/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password

線上隨機數字/字串生成工具:
http://tools.jb51.net/aideddesign/suijishu

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。