Python random模块用法整理

这篇具有很好参考价值的文章主要介绍了Python random模块用法整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

随机数在计算机科学领域扮演着重要的角色,用于模拟真实世界的随机性、数据生成、密码学等多个领域。Python 中的 random 模块提供了丰富的随机数生成功能,本文整理了 random 模块的使用。

Python random 模块

注意事项

  • 伪随机性:Python 使用 random 模块生成各种分布的伪随机数。计算机生成的随机数都是伪随机数,它们是由确定性算法生成的,只是看起来像随机。如果需要高度的随机性,需要额外的随机源。

  • 不同类型的随机性:在模拟、密码学等场景中,需要注意不同类型的随机性需求。如果前往 Python 文档以获取此模块的文档,将会看到一条警告:

    Python random模块用法整理,Python,python,random
    显然,random 模块只适用于一般的随机数需求。random 模块使用 Mersenne Twister 算法来生成随机数。但是这种算法是完全确定性的,而对于密码学等需要高强度随机性的场景,应该使用 secrets 模块。

Python random 模块的内置函数

下面是 random 模块下的各种内置函数。这些函数能够在不同场景下生成伪随机数:

Python random模块用法整理,Python,python,random
下面的列表包含了上述随机数生成函数的简要说明:

函数名 描述
randint(a, b) 生成一个位于 [a, b] 范围内的随机整数
randrange(start, stop, step) 生成一个以 step 递增的整数序列中的随机元素
random() 生成一个位于 [0.0, 1.0) 范围内的随机浮点数
uniform(a, b) 生成一个位于 [a, b) 范围内的随机浮点数
gauss(mu, sigma) 生成一个符合高斯分布的随机浮点数,均值为 mu,标准差为 sigma
sample(population, k) population 序列中随机选择 k 个元素,不重复
choice(sequence) 从序列中随机选择一个元素
shuffle(sequence) 随机打乱序列中的元素顺序
seed(a=None) 初始化随机数生成器的种子,用于重现随机序列

下面是这些函数的更详细介绍及示例。

randint()

此函数生成指定范围之间的整数。它接受两个参数 x x x y y y 并生成整数 i i i,使得 x < = i < = y x <= i <= y x<=i<=y

import random

a = random.randint(3, 6)
print(a)	# 输出:3

randrange()

该函数生成一个以 step 为步长的整数序列中的随机元素。startstop 是范围,取值范围是 [start, stop)。若省略 step 参数,默认为 1。

import random

a = random.randrange(1, 10, 2)
print(a)	# 输出:7

random()

该函数生成一个位于 [0.0, 1.0) 范围内的随机浮点数。所有数字在这个范围内的概率是相等的。

import random

a = random.random()
print(a)	# 输出:0.6427979778735594

uniform()

该函数生成一个位于 [a, b) 范围内的随机浮点数。类似于random(),但可以指定范围。

import random

a = random.uniform(3, 6)
print(a)	# 输出:3.512451152441262

gauss(mu, sigma)

该函数生成一个符合高斯分布(也称为正态分布)的随机浮点数。mu 是均值,sigma 是标准差,控制分布的形状。

import random

a = random.gauss(3, 0.5)
print(a)	# 输出:2.9743970359818612

sample()

如果想要一个序列中的多个随机元素,可以使用 sample()。它需要两个参数 populationk,其中 population 是一个序列,k 是一个整数。然后,该函数从 population 序列中随机选择 k 个元素,并以列表形式返回。选择不重复。

import random

seq = (12, 33, 67, 55, 78, 90, 34, 67, 88)
a = random.sample(seq, 5)
print(a)	# 输出:[88, 78, 67, 34, 33]

choice(sequence)

如果要从特定序列中选择随机元素,可以使用此函数。它需要一个参数——sequence。它从序列中返回一个随机元素。

import random

seq = (12, 33, 67, 55, 78, 90, 34, 67, 88)
a = random.choice(seq)
print(a)	# 输出:88

注意random.choice(seq) 不等同于 random.sample(seq, 1),前者返回元素,后者返回列表。

shuffle(sequence)

此函数采用一个参数 —— 列表。然后,它会将列表的元素打乱并返回。

import random

a = [10, 20, 30, 40, 50]
random.shuffle(a)
print(a)	# 输出:[30, 10, 20, 40, 50]

seed(a=None)

当需要多次生成相同的随机数序列时,可以使用此函数。它需要一个参数 —— 种子值。此值初始化伪随机数生成器。每当使用相同的种子值调用 seed() 函数时,它都会产生完全相同的随机数序列,这对于需要重现随机结果的情况很有用。

import random
# seed value = 3
random.seed(3)
for i in range(3):
    print(random.random(), end = ' ')

print('\n')

# seed value = 8
random.seed(8)
for i in range(3):
    print(random.random(), end = ' ')

print('\n')

# seed value again = 3
random.seed(3)
for i in range(3):
    print(random.random(), end = ' ')

print('\n')

输出:
0.23796462709189137 0.5442292252959519 0.36995516654807925

0.2267058593810488 0.9622950358343828 0.12633089865085956

0.23796462709189137 0.5442292252959519 0.36995516654807925

可以看出,对于种子 = 3,每次都会生成相同的序列。文章来源地址https://www.toymoban.com/news/detail-666746.html

到了这里,关于Python random模块用法整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python re模块用法详解

    re模块常用方法 re.compile() 该方法用来生成正则表达式对象,其语法格式如下: regex=re.compile(pattern,flags=0) 参数说明: pattern:正则表达式对象。 flags:代表功能标志位,扩展正则表达式的匹配。 re.findall() 根据正则表达式匹配目标字符串内容。 re.findall(pattern,string,flags=0) 该函数

    2024年02月09日
    浏览(46)
  • Python第三方模块:pymongo模块的用法

    pymongo模块是python操作mongo数据的第三方模块,记录一下常用到的简单用法。 首先需要连接数据库: MongoClient():该方法第一个参数是数据库所在地址,第二个参数是数据库所在的端口号 authenticate():该方法第一个参数是数据库的账号,第二个参数是数据库的密码 第一行代码表

    2024年02月09日
    浏览(67)
  • Python中itertools 模块的用法

    在 Python 中,迭代器是一种非常好用的数据结构,其最大的优势就是延迟生成,按需使用,从而大大提高程序的运行效率。而 itertools 作为 Python 的内置模块,就为我们提供了一套非常有用的用于操作可迭代对象的函数。 1.count 功能详解 count(start=0,step=1) 函数有两个参数,其中

    2024年04月17日
    浏览(35)
  • Python中pathlib 模块的用法

    pathlib 模块提供了表示文件系统路径的类,可适用于不同的操作系统。 使用 pathlib 模块,相比于 os 模块可以写出更简洁,易读的代码。pathlib 模块中的 Path 类继承自 PurePath,对 PurePath 中的部分方法进行了重载,相比于 os.path 有更高的抽象级别。 本文将带你学习如何使用 pat

    2024年04月17日
    浏览(37)
  • Python中paramiko 模块的用法

    paramiko 是一个用 Python 语言编写的、遵循 SSH2 协议、支持以加密和认证方式进行连接远程服务器的模块。改模块可以对远程服务器进行一些命令或文件操作。 使用 pip3 安装 paramiko 模块 连接远程服务器 paramiko 模块连接远程服务器可以使用远程服务器的用户名、密码登录 在登录

    2024年04月13日
    浏览(35)
  • Python中operator 模块的用法

    operator 模块提供了一套与 Python 的内置运算符对应的高效率函数。 函数包含的种类有:对象的比较运算、逻辑运算、数学运算和序列运算 运算 函数 语法 小于 lt(a, b) a b 小于等于 le(a, b) a = b 大于 gt(a, b) a b 大于等于 ge(a, b) a = b 等于 eq(a, b) a == b 不等于 ne(a, b) a != b 实例: 运算

    2024年04月17日
    浏览(33)
  • python基础教程:re模块用法详解

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可 二、re模块的方法介绍 1、匹配类方

    2024年02月11日
    浏览(40)
  • 【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

    目录 一、定位页面元素方法源码说明  (1)Webdriver.common (2)selenium.webdriver.common.by (3)By 二、定位页面元素方法用法汇总 (1)2.0 及以下低版本 selenium :By 定位页面元素方法用法(可忽略) (2)3.0 ~ 3.9 版本 selenium:By 定位页面元素方法用法 (3)4.0 ~ 4.9 版本 selenium:

    2023年04月13日
    浏览(87)
  • python re 模块 findall 函数用法简述

    import re s = \\\"adfad asdfasdf asdfas asdfawef asd adsfas \\\"   reObj1 = re.compile(\\\'((w+)s+w+)\\\') reObj1.findall(s) [(\\\'adfad asdfasdf\\\', \\\'adfad\\\'), (\\\'asdfas asdfawef\\\', \\\'asdfas\\\'), (\\\'asd adsfas\\\', \\\'asd\\\')]   reObj2 = re.compile(\\\'(w+)s+w+\\\') reObj2.findall(s) [\\\'adfad\\\', \\\'asdfas\\\', \\\'asd\\\']   reObj3 = re.compile(\\\'w+s+w+\\\') reObj3.findall(s) [\\\'adfad asdfasdf\\\', \\\'as

    2024年01月18日
    浏览(39)
  • Python入门教程23:math模块的用法

    **math是Python 的一个内置模块,它提供了许多数学函数和常量,用于进行数学计算。**以下是一些常用的math模块中的函数和常量: math.pi:圆周率π的近似值,约等于3.14159。 math.e:自然对数的底数e的近似值,约等于2.71828。 math.sqrt(x):求平方根。 math.pow(x, y):求x的y次方。 ma

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包