Python random 模块的总结
【 原创作者:小康2021 】
random 模块
random 库是使用随机数的 Python 标准库,使用时候只需要 import random 即可。
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但是计算机是不可能产生随机值的,真正的随机数也只是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。
计算机不能产生真正的随机数,只能产生类似于随机数的伪随机数。
注:伪随机数是计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
random 模块的作用就是产生伪随机数,其包含了 randint 函数、random 函数、uniform 函数、choice 函数、randrange 函数、sample 函数以及 shuffle 函数等多种与随机有关的函数,下面将着重介绍几种。
=============================== 开 START 始 ===============================
一、randint 函数
1、用法
num = randint(start, end)
产生一个 [ start , end ] 内的一个整数型(int)随机数,其中 start 和 end 必须为整数,且 start <= end 。
2、实例
from random import randint
print(randint(1, 1000)) #在 1 到 1000 之间随机产生一个整数
输出结果为:
666
特别地,当 start 等于 end 的时候,比如:
from random import randint
print(randint(3, 3)) #此时 start = end
输出的结果永远是:
3
3、错误用法
如果 start > end ,那么就会报错:
from random import randint
print(randint(5, 2)) #此时 start > end
报错内容为:
ValueError: empty range for randrange() (5, 3, -2)
二、random 函数
1、用法
num = random()
产生一个随机生成的浮点型(float)实数,其范围在 [ 0 , 1 ) 内,不包括 1 。
2、实例
from random import random
print(random()) #随机产生一个 0 到 1 且不包括 1 的浮点数
print(10*random()) #随机产生一个 0 到 10 且不包括 10 的浮点数
输出结果为:
0.4167967975536755
7.7058321694517335
三、uniform 函数
1、用法
num = uniform(start, end)
产生一个 [ start , end ] 内的一个浮点型(float)随机数,start 和 end 可以不是整数,且 start 与 end 的顺序可以颠倒。
2、实例
from random import uniform
print(uniform(1.5, 3))
print(uniform(3, 1.5))
这两种用法都是可行的,其输出结果为:
2.485862092821843
1.658384848539999
同时,与 randint 函数相同的是:
from random import uniform
print(uniform(1.5, 1.5)) #此时 start = end
输出结果永远为:
1.5
四、choice 函数
1、用法
value = choice(seq)
seq 可以是一个非空序列,如列表(list)、元组(tuple)、字符串(str),但不能是集合(set)。
choice 函数会从非空序列中随机选取一个数据作为返回值。
2、实例
from random import choice
print(choice(('you','me','them'))) #此时 seq 为元组(tuple)
print(choice(['我','是','好','学','生'])) #此时 seq 为字符串构成的列表(list)
print(choice([1,2,3,4,5])) #此时 seq 为整数构成的列表(list)
print(choice('哔哩哔哩 (゜-゜)つロ 干杯~-bilibili')) #此时 seq 为字符串(str)
输出结果为:
you
是
2
哔
3、错误用法
如果 seq 是一个集合(set),那么就会报错:
from random import choice
print(choice({'这','是','一','个','集','合'})) #此时 seq 为一个集合(set)
报错内容为:
TypeError: 'set' object is not subscriptable
五、randrange 函数
1、用法
num = randrange(start, stop, step)
产生一个 [ start , stop ) 以内,间隔为 step 的随机整数,但不包括 stop ,且 start、stop、step 都必须为整数,而且 step ≠ 0 ,start ≠ stop 。
若 step > 0,则必须 start < stop ;若 step < 0,则必须 start > stop 。
2、实例
from random import randrange
print(randrange(1,101,3)) #从 1 到 101 中以 3 为间隔随机选取一个整数
print(randrange(101,1,-3)) #从 101 到 1 中以 -3 为间隔随机选取一个整数
输出结果为:
40
5
3、错误用法
(1)如果 step = 0,那么就会报错:
from random import randrange
print(randrange(1,4,0)) #此时 step = 0
报错内容为:
ValueError: zero step for randrange()
(2)如果 start = stop ,那么就会报错:
from random import randrange
print(randrange(1,1,1)) #此时 start = end
报错内容为:
ValueError: empty range for randrange() (1, 1, 0)
(3)如果 step < 0 ,而 start < stop ,或者 step > 0 ,而 start > stop 那么就会报错:
from random import randrange
print(randrange(2,5,-2)) #此时 step < 0 ,而 start < end
报错内容为:
ValueError: empty range for randrange()
4、省略用法
start 和 step 都可以不提供参数,默认是从 0 开始,间隔为 1 。但如果需要指定 step ,则必须先指定 start 。
from random import randrange
print(randrange(4)) #从 0, 1, 2, 3 中随机选取一个整数
print(randrange(1, 4)) #从 1, 2, 3 中随机选取一个整数
输出结果为:
2
3
从中我们可以看出 randrange(start, stop, step) 其实在效果上等同于 choice(range(start, stop, step)) 。
六、sample 函数
1、用法
num = sample(population, x)
population 是一个非空列表序列,x 是需要从列表中随机选取元素的个数,x 的值不可超过 population 的元素个数。
sample 函数会从 population 中随机选取 x 个元素,但其不改变原序列,并将这 x 个元素以一个新列表的形式输出,其中输出的元素没有顺序之分。
2、实例
from random import sample
a = [1, 2, 3, 4, 5]
b = 'Nice!'
print(sample(a,2)) #从列表 a 中随机选取两个元素
print(sample(b,3)) #从字符串 b 中随机选取三个元素
print(a,b) #打印原序列
输出结果为:
[3, 5]
['!', 'c', 'e']
[1, 2, 3, 4, 5] Nice! #原序列未改变
3、错误用法
如果 x 的值超过 population 的元素个数,那么就会报错:
from random import sample
print(sample([1,2,3],4)) #此时 x 的值超过了序列 population 中元素的个数
报错内容为:
ValueError: Sample larger than population or is negative
七、shuffle 函数
1、用法
shuffle(seq)
将序列 seq 中元素的顺序打乱,即改变原来的序列,此处序列 seq 不可为字符串(str)。
2、实例
from random import shuffle
list = ['我','是','大','聪','明']
shuffle(list) #打乱 list 列表
print(list)
输出结果为:
['大', '聪', '明', '是', '我']
3、错误用法
如果 seq 为字符串(str),那么就会报错:
from random import shuffle
str = '字符串'
shuffle(str)
print(str)
报错内容为:
TypeError: 'str' object does not support item assignment
================================ 结 END 束 ================================
以上内容就是对 random 模块里的一些常用函数的简单总结,原创不易,请大家多多支持!!!
Python random 模块的总结相关推荐
- python数组随机打乱_对Python random模块打乱数组顺序的实例讲解
在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample ...
- Python random 模块 - Python零基础入门教程
目录 一.Python random 模块常用函数介绍 二.Python random 模块使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyt ...
- Python random模块常用方法的使用
Python random模块常用方法的使用 Python 的random模块包含许多随机数生成器. random是Python标准库之一,直接导入即可使用.本文介绍random中常用方法的用法. 一 ...
- python数据模块下载顺序_对Python random模块打乱数组顺序的实例讲解
在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample ...
- python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...
原标题:10分钟让你掌握python编程中random模块功能使用,非常详细 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可 ...
- python random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- python random模块导入_Python学习笔记(二十)—模块的导入
一.模块介绍 Python 提供了强大的模块支持,主要体现在Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块.通过这些强大的模块可以极大地提 ...
- python random模块中的指令_python中random模块的使用
这些方法位于random模块中 random.random(),同javascript的Math.random(),返回[0.0,1)之间的浮点数 random.uniform(a, b),返回[a, ...
- Python random模块sample、randint、shuffle、choice随机函数
一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...
- 对python random模块的认识_Python学习_random模块使用
#!/usr/bin/python #-*- encoding:UTF-8 -*- #date:20180516 random模块的方法:随机生成想要的数字.字母等 '''随机函数,random生成的 ...
最新文章
- 2019牛客暑期多校训练营(第七场)
- VC下调用x264进行视频编码,
- MVC4下配置log4net 五部曲
- javaweb基础知识点记录2
- git提交时发现iml文件没有被排除
- linux搭建虚拟化平台报告,CentOS 7中搭建KVM虚拟化平台的方法步骤
- 初探asp.net异步编程之await
- 云盘万能钥匙破解去后门版Cracked By 8848
- 金士顿u盘数据恢复软件推荐
- 手机的尺寸、分辨率、像素密度的关系
- javascript 判断为负数_JavaScript判断数字正负数
- 华东师范大学 硕士毕业论文模版 overleaf版
- KindEditor插件(富文本编辑器)的使用
- 连续三次世界500强面试经历
- 前端优化 - 收藏集 - 掘金
- 网站服务器评测,9.2分! 浪潮服务器受到海外权威专业评测网站肯定
- 夏日PHP图书管理系统 v0.3(源码)
- 破解还原卡的方法总结!! 1
- permute()--对维度进行换位
- Lombok插件的安装以及使用