当前位置:   article > 正文

Python random模块_python random随机选择

python random随机选择

模块random包含生成伪随机数的函数,有助于编写模拟程序或生成随机输出的程序。注意,虽然这些函数生成的数字好像是完全随机的,但它们背后的系统是可预测的。
如果需要真正的随机(如用于加密或实现与安全相关的功能),应考虑使用模块os中的函数urandom。模块random中的SystemRandom类基于的功能与urandom类似,可提供接近于真正随机的数据。

常用函数

random() 返回一个0~1(含)的随机实数
getrandbits(n) 以长整数方式返回n个随机的二进制位
uniform(a, b) 返回一个a~b(含)的随机实数
randrange([start], stop, [step]) 从range(start, stop, step)中随机地选择一个数
choice(seq) 从序列seq中随机地选择一个元素
shuffle(seq[, random]) 就地打乱序列seq
sample(seq, n) 从序列seq中随机地选择n个值不同的元素

一、随机整数

1. randomint

获取一个下限为a,上限为b的随机整数[a,b]

import random
# 随机生成整数0或1
a = random.randint(0, 1)
print(a)
  • 1
  • 2
  • 3
  • 4
'
运行

2. randrange

randrange([start], stop, [step]) 从range(start, stop, step)中随机地选择一个数。

函数random.randrange是生成随机整数的标准函数。为指定这个随机整数所在的范围,你可像调用range函数那样给这个函数提供参数。例如,要生成一个1~10(含)的随机整数,可使用randrange(1, 11)或randrange(10) + 1。要生成一个小于20的随机正奇数,可使用randrange(1, 20, 2)。

import random
# 生成一个1~10(含)的随机整数
a = random.randrange(1, 11)
print(a)
# 生成一个小于20的随机正奇数
b = random.randrange(1, 20, 2)
print(b)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
'
运行

二、随机浮点数

1. random()

函数random.random是最基本的随机函数之一,它返回一个[0, 1)的伪随机数。

import random
# 返回一个0~1(含)的伪随机数
a = random.random()
print(a)
  • 1
  • 2
  • 3
  • 4
'
运行

在这里插入图片描述

2. uniform()

函数功能描述如下:Get a random number in the range [a, b) or [a, b] depending on rounding.
函数random.uniform有两个数字参数a和b,返回一个a~b的随机(均匀分布的)实数。根据rounding的方式不同,可返回[a, b) 或 [a, b]范围的浮点数。

例如,如果你需要一个随机角度,可使用uniform(0, 360)。

import random
# 返回一个0~360的伪随机数
a = random.uniform(0, 360)
# a = random.random()
print(a)
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

三、随机选择

前文介绍的是随机数的获取,random模块还提供了从给定序列(字符串,列表,元组等)中进行选择原始的功能。如年会抽奖,从员工列表中抽取指定人选获奖。

1. choice

choice 可从给定序列中随机(均匀)地选择一个元素。

import random
peopleList = ['a1', 'a2', 'a3']
# 从给定列表中选择一个元素
a = random.choice(peopleList)
print(a)
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

2. choices

随机获取序列中的多个数据结果,而且每次取其中一个数据,获取多次random.choices(list, weights, k)
参数说明:
list: 序列名称
weights: 选中概率(不设置就默认每个数据被取到的概率相同)
k: 获取次数

import random
peopleList = ['a1', 'a2', 'a3']
# 从给定列表中选择一个元素
a = random.choices(peopleList)
print(a)
# 从给定列表中选择多个元素
b = random.choices(peopleList, k = 3)
print(b)
# 从给定列表中选择多个元素,并设置列表元素选中的权重
c = random.choices(peopleList, weights = [8, 1, 1], k = 3)
print(c)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
'
运行

在这里插入图片描述

3. sample

函数random.sample从给定序列中随机(均匀)地选择指定数量的元素,并确保所选择元素的值各不相同。

import random
peopleList = ['a1', 'a2', 'a3']
# 从列表中选择多个数据
a = random.sample(peopleList, k = 2)
print(a)
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/966154
推荐阅读
相关标签
  

闽ICP备14008679号