一、random模塊作用
random 模塊提供了一組隨機函數,可以生成隨機浮點數、整數、字符串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數據等。
二、random 模塊中的所有函數
函數 | 作用 |
---|---|
random.random() | 生成 0~1以內的隨機小數,左閉右開 |
random.randint(1,3) | 生成1-3之間的隨機整數,左閉右閉 |
random.randint(1, 10, 2) | 生成1-10之間隨機整數,間隔爲2,理解爲取奇數 |
random.randrange(0, 10) | 生成2-10之間的隨機整數,左閉右開 |
random.randrange(1, 10,2) | 生成1-10之間隨機整數,間隔爲2,理解爲取奇數 |
random.uniform(1, 10) | #生成1.0到10以內的隨機浮點數,左閉右開 |
random.shuffle(list01) | 打亂list01列表中的順序 |
random.choice([1, 2, 5]) | 從列表中隨機抽一個值,也可以爲元組和字符串 |
random.choices([1, 2, 3], k=5, weight=[1, 2, 3]) | 從列表中隨機抽取可能重複的元素,一次抽取5個,抽取到的概率依次遞增 |
random.sample([1, 2, 3, 4], k=4) | 從列表中隨機抽取不重複的元素,一次抽取4個,生成列表 |
3.函數實例
1. 基礎函數
random()函數 是random模塊中與模塊同名的基礎函數,它的功能是生成 0~1以內的隨機小數。
import random
print(random.random()) #0.8003585112831768
2. 生成函數
除基礎函數random()之外,在生成隨機數的需求上還可能會附加一些額外的條件,比如規定起始點終止點,比如生成特定的數字(奇數,偶數)等,根據條件的不同,可以選擇不同的生成函數。
>>> import random
>>> random.randint(1, 10) # 生成1到10以內的隨機整數,包含1和10
6
>>> random.randint(1, 10, 2) # 生成1到10以內,間隔爲2的隨機整數(可以視爲奇數)
3
>>> random.randrange(0, 10) # 生成0到10以內的隨機整數,包含0,不包含10
8
>>> random.randrange(0, 10,2) # 生成0到10以內,間隔爲2的隨機整數(可以視爲偶數)
4
>>> random.uniform(1, 10) # 生成1.1到10以內的隨機浮點數
1.7121809277539233
3. 獲取函數
獲取函數是在一組已經存在的列表、數組或者是字符串中,隨機抽取出單個或多個元素的操作。
>>> import random
>>> random.choice([1, 2, 3, 4, 5]) # 從列表中隨機抽取元素
2
>>> random.choice(‘Python’) # 從字符串中隨機抽取元素
'h'
>>> random.sample([1, 2, 3, 4], k=4) # 從列表中隨機抽取不重複的元素,一次抽取4個,生成列表
[3,1,4,2]
>>> random.sample('Python', k=4) # 從字符串中隨機抽取不重複的元素,一次抽取4個,生成列表
['y', 'h', 'n', 'P']
>>> random.choices([1, 2, 3], k=5, weight=[1, 2, 3]) # 從列表中隨機抽取可能重複的元素,一次抽取5個,抽取到的概率依次遞增
[3,2,3,1,3]
4. 打亂函數
打亂函數是對一組已經存在的列表進行元素內部打亂的操作。因爲此函數只是修改已有的對象,而不會生成新的對象,所以函數本身的值始終爲None。
>>> import random
>>> list01 = [1, 2, 3, 4, 5]
>>> list02 = random.shuffle(list01) # 參數只能爲列表
>>> list01
[3,1,4,2,5]
>>> list02
None