python 随机函数random详解

Python 的 random 模块提供了一系列用于生成随机数的函数。这些函数可以用于生成随机整数、浮点数、选择随机元素等。以下是对 random 模块中常用函数的详细解释:

导入 random 模块:    import random 

random常用函数:

1.random.random():返回 0 与 1 之间的随机浮点数 N

import random
print(random.random())

>>0.4504418186287992   # 随机生成

2.random.uniform(a, b)

生成一个范围在 [a, b] 之间的随机浮点数。

print(random.uniform(50,100))

>> 70.54773148564546    # 50 - 100 之间的随机浮点数

3.random.randint(a, b)

生成一个范围在 [a, b] 之间的随机整数,包括两端点。

  范围: a<=N<=b

#需要注意的是,a 和 b 的取值必须为整数,并且a 的值一定要小于 b 的值
print(random.randint(2,50))     # 生成一个随机整数N,范围是2<=N<=50
>>23

print(random.randint(20,10))    # 报错!!!a必须大于b

4.random.randrange(start, stop, step)

生成一个范围在 [start, stop) 之间、步长为 step 的随机整数。

如果 step 未指定,默认为 1。

print(random.randrange(1, 10, 2))   # 生成 1, 3, 5, 7, 9 中的一个
>> 3

5.random.choice(seq)

从非空序列 seq 中返回一个随机数。   seq 可以是列表、元组、字符串等。

str = random.choice("学习 python")    #从这几个字符串中返回一个随机数
print(str)
>> 习    # 随机返回

print(random.choice(['apple', 'banana', 'cherry'])) 
>> banana

6.random.choices(population, weights=None, *, cum_weights=None, k=1, p=None)

从给定的序列 population 中进行有放回的随机抽样。这个函数允许你指定每个元素被选中的概率(通过 weights 或 p 参数),并可以一次抽取多个样本(通过 k 参数)。。

print(random.choices(['apple', 'banana', 'cherry'], weights=[1, 3, 2], k=3))
>>['apple', 'cherry', 'banana']


参数:
population:一个序列(如列表、元组或字符串),从中进行抽样。
weights(可选):一个与 population 中元素相对应的序列,指定每个元素被选中的相对权重。权重可以是整数或浮点数。如果未提供,则假定所有元素的权重相等。
cum_weights(可选):一个累积权重序列,其中每个元素是到当前位置为止的权重总和。如果提供了 cum_weights,则不能使用 weights 或 p。
k(可选):要抽取的样本数量。默认为 1。
p(可选):一个序列,直接指定每个元素被选中的概率。概率之和应为 1(或接近 1),且每个概率应为非负数。如果提供了 p,则不能使用 weights 或 cum_weights

​​​​​​​7.random.sample(population, k)

从非空序列 population 中随机选择 k 个不重复的元素。

print(random.sample(['apple', 'banana', 'cherry', 'date'], 2))  
  # 从序列里随机选取两个不重复的元素
>>['banana', 'date']

举例: ### 随机生成数字字母的六位数

ran = ''
s = 'QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuioplkjhgfdsazxcvbnm1234567890'

# 方式一:
for i in range (6):
   index = random.randint(0,len(s)-1)    //len()统计长度   随机生成0-总长度的数字作为索引
   ran += s[index]      //借助索引找到对应的字符赋值给ran,每循环一次加在后面,最终生成六位数
print(ran) 
    
# 方式二:
for i in range (6):
    str = random.choice(s)    //.choice(s):直接从 s中返回一个随机数
    ran += str
print(ran)

random注意事项:

  • random 模块生成的随机数是基于伪随机数生成算法的,因此它们并不是真正的随机。
  • 使用 random.seed() 可以确保每次运行程序时生成的随机数序列相同,这在调试和测试时非常有用。

通过了解和使用这些函数,你可以生成各种需要的随机数或进行随机选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值