Python五级 | 生成伪随机数模块 random 常用函数及其应用示例

文摘   科技   2023-05-03 08:42   重庆  



中国电子学会的青少年软件编程等级考试Python(五级),关于常用标准库的能力要求是:掌握常用标准库的功能与用法,具备灵活运用已有方法快速扩展程序功能的能力:

1、掌握 math、random、turtle、time 等常用工具库的功能和使用方法。

2、理解 PiInstaller、jieba、wordcloud 等第三方库的获取与使用方法

3,能够使用上述基本数据类型和常用模块(库)编写指定功能的程序。


  英文基础


先看相关英文单词。

random,adj. 随机的,随意的(非事先决定或不规则)。

例句:

This menu will load a random background image from the data folder.  

这个菜单将从数据文件夹载入一个随机的背景图像。

choice,n. 选择;挑选

例句:

We are faced with a difficult choice.

我们面临着一个艰难的选择。

shuffle,v. 洗牌; 打乱次序;n. 洗牌

例句:

There are various ways of shuffling and dealing the cards. 

有各种不同的洗牌和发牌方式

sample,n. 样品;样本;v.采样;取样

例句:

All samples are chosen randomly. 

所有样本都是随机选取的。

uniform,n.制服;校服;统一服装;adj. 一致的;统一的;一律的;v.使均一使穿制服;Web. 均匀;均匀的

短语:

uniform distribution

均匀分布

seeds,n. 种子;起因;萌芽;种子选手

例句:

The seeds will sprout in a few days.

这些种子几天后就会发芽。


  random 模块常用函数


Python的random模块实现了多种分布的伪随机数生成器。

使用方法,与其它模块的使用类似,在使用模块之前需要导入:

整数用函数:

 random.randrange(stop)

 random.randrange(start,stop[,step])

从range(start, stop, step) 返回一个随机数

可以把内置函数range()作为理解random模块函数randrange()的基础。

例1

例2


 random.randint(a, b)

返回闭区间[a,b]内的随机整数N,N 满足a <= N <= b。相当于randrange(a, b+1)。

记忆方法:rand  +  int

例3

序列用函数

 random.choice(seq)

从序列非空序列seq中随机选择一个元素并返回。如果seq 为空,则引发IndexError。

例4

例5

 random.shuffle(x)

就地将序列x 随机打乱位置。

例6

注意:上面第2行不用赋值。

如果使用赋值语句:

例7

下面的这一条random.sample(populationk)在Python五级中没有明确要求,但对于产生一个随机序列比较方法,再次一并介绍。

 random.sample(population, k

从总体population中随机抽取K个不重复的元素,返回新的列表,列表按选择顺序排列。原总体population不被改变。

总体成员不必是hashable 或unique 。如果总体包含重复,则每次出现都是样本中可能的选择。

上面的总体population如何用range()函数产生,便是从一个整数区间随机抽取一定数量的整数,如:random.sample(range(100), k=10),从0到99的整数中,随机抽取10个数。

例8

例9

例10

例11

实值分布

 random.random()

返回左闭右开区间[0.0,1.0)内的一个浮点数x,0.0 <= X < 1.0。

例8

 random.uniform(a,b)

返回一个由a和b指定范围内的随机浮点数。这里的b可以小于a。终点可以包括或不包括在该范围内。

例9

初始化

此知识点在Python五级中没有明确要求。但这个概念很基本,这里作为了解内容介绍。

 random.seed(a=None, version=)

初始化随机数生成器。

如果a 被省略或为None ,则使用当前系统时间。如果操作系统提供随机源,则使用它们而不是系统时间。

如果a 是int 类型,则直接使用。


  总 结


掌握:

 random.randrange(stop)

 random.randrange(start,stop[,step])

 random.randint(ab)

 random.choice(seq)

 random.shuffle(x)

 random.random()

 random.uniform(a,b)

了解:

 random.sample(populationk

 random.seed(a=Noneversion=)


临菲编程
助学、助考、助成长