python random模块详解

一、random模块简介

random是python的重要标准模块之一,用于伪随机数生成,所用的算法是梅森旋转算法

二、常用函数

1、random()

random()会生成0到1之间的一个伪随机浮点数(小数)。

import random
print(random.random())
#0.452439574951
import random
for i in range(1, 5):
	print(random.random())
#0.245785651324
#0.283456834865
#0.993867783234
#0.745685685257

2、randint()

randint(a, b)会生成a到b之间的一个伪随机整数(包括a,b),a必须大于b(负数也可以,,浮点数不行)。

from random import randint
for i in range(1, 5):
	print(randint(1, 100))
#1
#63
#100
#87
from random import randint
print(randint(-100, -10))
#-72

3、uniform()

uniform(a, b)会生成a到b之间的一个伪随机浮点数(包括a,b),a必须大于b(负数可以,浮点数也可以)。

import random
for i in range(1,5):
	print(random.uniform(1.5, 10))
#5.681521893646854
#9.810584747467718
#5.245350567074371
#3.101710812602388

4、choice()

choice(a)会从a序列中随机取出一个元素。(a可以是列表,元组,字符串)

import random 
a = ['a', 'b', 'c']
b = (1, 'y', '5')
c = 'programmer'
print(random.choice(a))
#c
print(random.choice(b))
#1
print(random.choice(c))
#a

5、choices()

choices函数在choice的基础上可以随机选取多次(多次不是多个!!!),并且可以设置权重(每个元素抽到的概率)
语法如下:
choices(序列, weights=[相对权重], cum_weights=[累加权重], k=选取次数)

import random 
a = ['a', 'b', 'c', 'd', 'e']
print(random.choices(a, k=3))
#['a', 'c', 'd']
print(random.choices(a, weights=[0, 1, 0, 1, 0], k=5))
#['b', 'd', 'd', 'd', 'b']
print(r.choices(a, cum_weights=[1, 1, 1, 1, 1], k=5))
#['a', 'a', 'a', 'a', 'a']

6、randrange()

randrange(start, stop, step)在randint的基础上可以指定步长,和range()差不多。

import random
for i in range(1,5):
	print(random.randrange(1,10,2))
#3
#3
#1
#9
import random
for i in range(1, 5):
	print(random.randrange(start=0 ,stop=10, step=3))
#0
#6
#3
#9

7、sample()

sample(population,k)与choices略有不同,sample()是选取多个,所以k不能超过序列元素个数,也不能设置权重。

import random
a = [1, 2, 3, 4, 5]
for i in range(1, 5):
	print(random.sample(a, k=5))#k超5会报错
#[4, 5, 1, 2, 3]
#[3, 2, 5, 4, 1]
#[5, 4, 1, 3, 2]
#[1, 4, 5, 3, 2]

8、shuffle()

shuffle用于打乱一个序列(对集合,元组,字典无效),无返回值。

import random
a = [1, 2, 3, 4, 5]
random.shuffle(a)
print(a)
#[2, 5, 4, 3, 1]

9、getstate()

getstate()用于获取当前状态,方便之后恢复状态。

10、setstate()

setstate()用于恢复状态,相当于还原之前设置的状态。

import random 
a = random.getstate()
print(random.random())
#0.4215663812275289
print(random.random())
#0.8080462977274661
random.setstate(a)
print(random.random())
#0.4215663812275289
print(random.random())
#0.8080462977274661
print(random.random())
#0.3828911712888359
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九年义务tj漏网之鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值