python 标准库random生成随机数


当前版本:

  • Python 3.8.4

文章目录如下

[1. random的特点](#1. random的特点)

[2. random的用法](#2. random的用法)

[2.1. 随机整数](#2.1. 随机整数)

[2.2. 随机小数](#2.2. 随机小数)

[2.3. 随机元素](#2.3. 随机元素)

[2.4. 随机字符串](#2.4. 随机字符串)


1. random的特点

random 提供了生成伪随机数的功能,可以用于各种随机相关的操作,如生成随机数、洗牌、选择随机元素等。常用的内置方法如下:

【随机整数】

python 复制代码
import random
random.randint(x, y)   # x~y之间的随机整数
random.randrange(start, stop[, step])  # 指定范围内的随机整数,可指定起始值、终止值和步长。

【随机浮点数】

python 复制代码
import random
random.random()        # 0~1随机浮点数
random.uniform(x, y)   # x~y之间的随机浮点数

【随机元素】

python 复制代码
import random
random.choice(seq)    # 序列中随机选择一个元素
random.shuffle(seq)   # 随机打乱序列中的元素的顺序

2. random的用法

2.1. 随机整数

随机整数一般通过 randint 或 randrange 来获取,它们的范围由平台位数决定:

python 复制代码
32位范围:(-2^31) ~ (2^31 - 1)  # -2147483648 ~ 2147483647

64位范围:(-2^63) ~ (2^63 - 1)  # -9223372036854775808 ~ 9223372036854775807

常用的 randint 语法:

python 复制代码
random.randint(开始大小, 结束大小)

比如指定获取 0~1

python 复制代码
random.randint(0, 1)

生成6位随机数

python 复制代码
random.randint(100000, 999999)

在一些特定的场合需要指定步长可以利用randrange来获取

python 复制代码
random.randrange(开始大小,结束大小,步长)

比如取1~100的随机奇数

python 复制代码
random.randrange(1,100,2)

取1~100随机偶数

python 复制代码
random.randrange(0,100,2)

2.2. 随机小数

  • 随机小数可以通过 random 或 uniform 获取

【案例一】生成0~1的随机小数 random

python 复制代码
random.random()    # 不接受参数

也支持运算(生成1~100的小数)

【案例二】按范围生成随机小数 uniform

python 复制代码
random.uniform(1, 10)    # 指定开始值和结束值

【案例三】指定小数位为2 round

python 复制代码
round(random.uniform(1, 10), 2)

2.3. 随机元素

【案例一】通过 choice 来获取一个随机元素

python 复制代码
L = [ "AAA", "BBB", 200, "CCC" ]
random.choice(L)    # 传入一个序列

【案例二】通过 shuffle 将序列的元素顺序打乱

python 复制代码
L = [ "AAA", "BBB", 200, "CCC" ]
random.shuffle(L)    # 传入一个序列

【案例三】通过 sample 随机获取n个元素

python 复制代码
L = [1, 2, 3, 4, 5]
random.sample(L, 3)

2.4. 随机字符串

choices 方法可以通过自定义的字符来生成一个列表,语法如下:

python 复制代码
random.choices('自定义字符', k=长度)

例如

python 复制代码
random.choices('abcdef', k=3)
  • 随机从 'abcdef' 中选取3个字符组成一个列表

生成字符串的话需要借助 join 函数

python 复制代码
''.join(random.choices('abcdef', k=3))

如果希望内容丰富一点,那就自定义多一些字符

python 复制代码
random_string = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=6))
相关推荐
仙俊红11 小时前
Java Map 家族核心解析
java·开发语言
浅念-11 小时前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
q_354888515312 小时前
AI大模型:python新能源汽车推荐系统 协同过滤推荐算法 Echarts可视化 Django框架 大数据毕业设计(源码+文档)✅
大数据·人工智能·python·机器学习·信息可视化·汽车·推荐算法
Yeats_Liao12 小时前
开源生态资源:昇腾社区ModelZoo与DeepSeek的最佳实践路径
python·深度学习·神经网络·架构·开源
code_li12 小时前
聊聊支付宝架构
java·开发语言·架构
被星1砸昏头12 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
少控科技12 小时前
QT高阶日记01
开发语言·qt
无限进步_13 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
“抚琴”的人13 小时前
C#上位机工厂模式
开发语言·c#
巨大八爪鱼13 小时前
C语言纯软件计算任意多项式CRC7、CRC8、CRC16和CRC32的代码
c语言·开发语言·stm32·crc