文章目錄
- 一Python的random模塊介紹
- 1.1 random.random()
- 1.2 random.uniform(a,b)
- 1.3 random.randint(a, b)
- 1.4 random.randrange([start], stop[, step])
- 1.5 random.choice(sequence)
- 1.6 random.shuffle(x[, random])
- 1.7 random.sample(sequence, k)
- 參考
一Python的random模塊介紹
Python中的random模塊用于生成亂數.
幾乎所有模塊函式都依賴于基本函式 random() ,它在半開放區間 [0.0,1.0) 內均勻生成隨機浮點數, Python 使用 Mersenne Twister 作為核心生成器, 它產生 53 位精度浮點數,周期為 2**19937-1 ,其在 C 中的底層實作既快又執行緒安全, Mersenne Twister 是現存最廣泛測驗的亂數發生器之一, 但是,因為完全確定性,它不適用于所有目的,并且完全不適合加密目的,
這個模塊提供的函式實際上是 random.Random 類的隱藏實體的系結方法, 你可以實體化自己的 Random 類實體以獲取不共享狀態的生成器,
| 方法 | 方法概述 |
|---|---|
| random.random() | 用于生成一個0到1的 [0,1.0),不包含1 |
| random.uniform(a,b) | 用于生成一個指定范圍內的隨機符點數,兩個引數其中一個是上限,一個是下限 可以是a > b,也可以是a < b |
| random.randint(a, b) | 用于生成一個指定范圍內的整數,其中引數a是下限,引數b是上限,生成的亂數n: a <= n <= b |
| random.randrange([start], stop[, step]) | 從指定范圍內,按指定基數遞增的集合中 獲取一個亂數 |
| random.choice(sequence) | random.choice從序列中獲取一個隨機元素 |
| random.shuffle(x[, random]) | 用于將一個串列中的元素打亂,即將串列內的元素隨機排列 |
| random.sample(sequence, k) | 從指定序列中隨機獲取指定長度的片斷并隨機排列 |
1.1 random.random()
用于生成一個0到1的 [0,1.0),不包含1
>>> print(random.random())
0.5714025946899135
>>> print(random.random())
0.4288890546751146
>>> print(random.random())
0.5780913011344704
>>>
1.2 random.uniform(a,b)
用于生成一個指定范圍內的隨機符點數,兩個引數其中一個是上限,一個是下限
可以是a > b,也可以是a < b
>>> print(random.uniform(1,10))
2.8548840892555156
>>> print(random.uniform(100,10))
26.8010873778412
>>>
>>> print(random.uniform(10,10))
10.0
>>>
>>> print(random.uniform(0.001,1))
0.6538190613672746
>>> print(random.uniform(0.001,1))
0.16106932696230084
>>>
1.3 random.randint(a, b)
用于生成一個指定范圍內的整數,其中引數a是下限,引數b是上限,生成的亂數n: a <= n <= b
>>> print(random.randint(0.001,1))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\random.py", line 220, in randint
return self.randrange(a, b+1)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\random.py", line 184, in randrange
raise ValueError("non-integer arg 1 for randrange()")
ValueError: non-integer arg 1 for randrange()
>>>
>>> print(random.randint(0,1))
1
>>> print(random.randint(0,100))
41
>>> print(random.randint(1000,100))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\random.py", line 220, in randint
return self.randrange(a, b+1)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\random.py", line 198, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (1000,101, -899)
>>>
1.4 random.randrange([start], stop[, step])
從指定范圍內,按指定基數遞增的集合中 獲取一個亂數
>>> print(random.randrange(1,10,2))
1
>>> print(random.randrange(1,10,2))
3
>>> print(random.randrange(1,10,2))
5
>>> print(random.randrange(1,10,2))
1
>>> print(random.randrange(1,10,2))
7
>>> print(random.randrange(1,10,2))
3
>>> print(random.randrange(1,10,2))
9
>>>
1.5 random.choice(sequence)
random.choice從序列中獲取一個隨機元素
>>> print(random.choice(['Oracle','MySQL','SQL Server','Postgresql']))
SQL Server
>>> print(random.choice(['Oracle','MySQL','SQL Server','Postgresql']))
SQL Server
>>> print(random.choice(['Oracle','MySQL','SQL Server','Postgresql']))
Postgresql
1.6 random.shuffle(x[, random])
用于將一個串列中的元素打亂,即將串列內的元素隨機排列
>>> db = ['Oracle','MySQL','SQL Server','Postgresql']
>>> random.shuffle(db)
>>> print(db)
['Oracle', 'Postgresql', 'SQL Server', 'MySQL']
>>>
1.7 random.sample(sequence, k)
從指定序列中隨機獲取指定長度的片斷并隨機排列
>>> import random
>>> db = ['Oracle','MySQL','SQL Server','Postgresql']
>>> print(random.sample(db,4))
['SQL Server', 'Oracle', 'MySQL', 'Postgresql']
>>> print(random.sample(db,3))
['Postgresql', 'SQL Server', 'MySQL']
>>> print(random.sample(db,2))
['Oracle', 'SQL Server']
>>>
>>> print(random.sample(db,1))
['Oracle']
>>>
>>> print(db)
['Oracle', 'MySQL', 'SQL Server', 'Postgresql']
>>>
參考
1.https://docs.python.org/zh-cn/3.6/library/random.html
2.https://www.cnblogs.com/liangmingshen/p/8909376.htm
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/276629.html
標籤:python
上一篇:點陣模塊原理學習
