Python random模块详解:随机数生成与序列操作指南

南乔
南乔
发布时间:2026-10-13| 2人浏览过
原创

本文详细介绍Python中random模块的核心功能,涵盖random.random、randint、uniform及randrange等随机数生成方法的具体用法与参数限制。同时解析choice、shuffle和sample在序列处理中的应用,包括验证码生成、列表随机排序及不修改原序列的采样技巧,帮助开发者高效掌握随机数处理。

前言:

random模块提供了多种分布的伪随机数生成器。针对整数类型,支持从指定范围内进行均匀选择;针对序列类型,提供了随机选取元素、生成随机排列列表以及无放回随机抽样等功能。

1、生成随机数

1.1 random.random() 方法

该方法返回一个位于[0, 1)区间内的随机浮点数。

语法结构如下:

import random  # 导入 random 模块

random.random()

1.2 random.randint方法

语法格式定义如下:

random.randint(a,b)

函数返回一个整数 N ,其中 N 的取值范围在 a 至 b 之间(需满足 a <= N <= b),且结果包含边界值 a 和 b。

1.3 random.uniform方法

语法格式定义如下:

random.uniform(a,b)

函数返回一个随机浮点数 N 。当 a <= b 成立时,返回值满足 a <= N <= b ;若 b < a 成立,则返回值满足 b <= N <= a。

1.4 random.randrange方法

语法结构如下:

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

  • start参数指定计数的起始值,对应 start ,默认值为 0。例如,调用 randrange(5) 等价于调用 range(0, 5);。
  • stop参数指定计数的结束值,对应 stop ,但不包含该值本身,即 stop。例如,randrange(0, 5) 生成的序列为 [0, 1, 2, 3, 4],不包含5。
  • step参数定义步长,默认为1。例如,range(0, 5) 等价于 randrange(0, 5, 1)
    。

该方法返回指定范围内的随机整数。

其效果等价于 choice(range(start, stop, step))。

示例代码:

import random

random_value = random.random()
print(random_value)

randint_value = random.randint(1, 3)  # 返回随机整数
print(randint_value)

uniform_value = random.uniform(1, 3)  # 返回随机浮点数
print(uniform_value)

randrange_value = random.randrange(1, 100, 2)  # 1到100步长为2(这里只能取到100以为的奇数)
print(randrange_value)

每次执行代码时,获取到的结果均不相同。

2、用于序列的函数

2.1 random.choice(seq)

从非空序列中随机返回一个元素;若序列为空,则抛出异常。

示例代码:

import random

value = random.choice(range(1, 100, 2))
# 这个等于random.randrange(1, 100, 2)
print(value)

此方法常用于模拟洗牌场景。

生成验证码的小案例:

import random


# 一个生成验证号的小案例
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
captcha = ''
for _ in range(4):
    a = random.choice(all_chars)
    captcha += a  # 连接字符串
print(captcha)

2.2 random.shuffle()方法

调用 shuffle(list) 方法可将序列中的所有元素进行随机排序。

示例代码:

import random
list1 = ["beautiful" , "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
random.shuffle(list1)

print(list1)

2.3 random.sample()方法

调用 random.sample(sequence, k) 可从指定序列中随机获取指定长度的片段。sample 函数不会修改原始序列。切片长度不得超过原序列长度,否则将抛出异常。

示例代码:

import random
list1 = ["beautiful", "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
list2 = random.sample(list1, len(list1))
print("原列表:", list1)
print("新列表:", list2)

此方法可用于获取原序列的随机排序副本,且不破坏原始序列。

到此这篇关于 Python random随机数模块详情的文章就介绍到这了,更多相关 Python random随机数模块内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。