Python随机数生成:不只是random()那么简单

简介: Python随机数生成:不只是random()那么简单

Python随机数生成:不只是random()那么简单

随机数在Python开发中有着广泛应用,从数据采样到机器学习,再到简单的抽奖程序都离不开它。许多开发者习惯直接使用random.random(),但Python的随机模块提供了更多实用功能。

让我们从一个常见场景开始——抽奖程序:

import random
import secrets

# 设置随机种子确保可复现性
random.seed(42)

# 从列表中随机选择
participants = ["Alice", "Bob", "Charlie", "Diana"]
winner = random.choice(participants)
print(f"获奖者: {winner}")

# 加权随机选择(Bob中奖概率是其他人的两倍)
weighted_winner = random.choices(
    participants, 
    weights=[1, 2, 1, 1], 
    k=1
)[0]
print(f"加权获奖者: {weighted_winner}")

# 安全关键场景使用secrets模块
secure_token = secrets.token_hex(16)
print(f"安全令牌: {secure_token}")

关键要点:

  • random.seed() 确保结果可复现,对测试非常重要
  • random.choices() 支持加权随机,适合业务规则复杂的场景
  • secrets 模块用于加密安全场景,如生成密码或令牌

性能提示: 批量生成随机数时,使用random.choices(population, k=n)比循环调用random.choice()快得多。

记住,没有真正的“随机”,只有精心设计的伪随机。选择合适的方法,能让你的代码既高效又安全。你在哪些项目中用过随机数生成呢?

相关文章
|
5月前
|
数据采集 开发者 Python
Python异步编程:解锁高性能并发新姿势
Python异步编程:解锁高性能并发新姿势
344 133
|
6月前
|
人工智能 安全 调度
AI工程vs传统工程 —「道法术」中的变与不变
本文从“道、法、术”三个层面对比AI工程与传统软件工程的异同,指出AI工程并非推倒重来,而是在传统工程坚实基础上,为应对大模型带来的不确定性(如概率性输出、幻觉、高延迟等)所进行的架构升级:在“道”上,从追求绝对正确转向管理概率预期;在“法”上,延续分层解耦、高可用等原则,但建模重心转向上下文工程与不确定性边界控制;在“术”上,融合传统工程基本功与AI新工具(如Context Engineering、轨迹可视化、多维评估体系),最终以确定性架构驾驭不确定性智能,实现可靠价值交付。
864 41
AI工程vs传统工程 —「道法术」中的变与不变
|
5月前
|
JSON 安全 测试技术
别再只用 `net/http` 了!Go 高并发场景的“涡轮增压”方案:`fasthttp`
`fasthttp` 是由 Valyala 开发的高性能 HTTP 引擎,专为高吞吐、低延迟、低内存场景优化。相比 `net/http`,它快 6 倍+、零堆分配、支持百万级连接,适合 API 网关、实时服务等场景,但仅支持 HTTP/1.1。(239 字)
531 0
|
5月前
|
数据采集 安全 调度
Python异步编程入门:asyncio实战指南
Python异步编程入门:asyncio实战指南
301 133
|
6月前
|
存储 数据采集 弹性计算
面向多租户云的 IO 智能诊断:从异常发现到分钟级定位
当 iowait 暴涨、IO 延迟飙升时,你是否还在手忙脚乱翻日志?阿里云 IO 一键诊断基于动态阈值模型与智能采集机制,实现异常秒级感知、现场自动抓取、根因结构化输出,让每一次 IO 波动都有据可查,真正实现从“被动响应”到“主动洞察”的跃迁。
537 103
|
6月前
|
人工智能 运维 前端开发
阿里云百炼高代码应用全新升级
阿里云百炼高代码应用全新升级,支持界面化代码提交、一键模板创建及Pipeline流水线部署,全面兼容FC与网关多Region生产环境。开放构建日志与可观测能力,新增高中低代码Demo与AgentIdentity最佳实践,支持前端聊天体验与调试。
847 52
|
5月前
|
机器学习/深度学习 监控 数据可视化
基于YOLOv8的小麦田间病害识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8构建小麦病害智能识别系统,支持大麦黄矮病、叶锈病、白粉病及健康叶片四类目标检测,集成PyQt5图形界面,兼容图片/视频/实时摄像头输入,提供完整源码、标注数据集、训练教程与预训练模型,开箱即用,助力智慧农业病害精准监测。
基于YOLOv8的小麦田间病害识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
5月前
|
机器学习/深度学习 存储 人工智能
让 AI 智能体学会自我进化:Agent Lightning 实战入门
Agent Lightning 是一个框架无关的强化学习包装层,赋能现有AI智能体实现在线持续学习。它解耦执行与训练,支持LangChain/AutoGen等任意框架,通过VERL算法解决稀疏奖励难题,让智能体从运行反馈中自动优化提示词与策略。
643 5
让 AI 智能体学会自我进化:Agent Lightning 实战入门
|
5月前
|
算法 安全 机器人
【路径规划】基于RRT算法实现自主机器人进行路径规划附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、引言:自主机器人导航的 “寻路神器”——RRT 算法登场 1.1 路径规划:自主机器人的核心导航难题 在科技飞速发展的当下,自主机器人已广泛涉足仓储物流、室内服务、工业巡检等诸多领域,为人们的生产生活带来了极大便利。想象一下,在大型仓储物流中心,货物堆积如山,过道纵横交
|
5月前
|
传感器 新能源 数据处理
【车辆】基于simulink的车辆的热管理系统附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、引言:车辆热管理,新能源时代的 “温控命脉” 1.1 为什么热管理是车辆性能的核心瓶颈? 随着新能源汽车(纯电、混动)渗透率飙升,车辆热管理的重要性被推向极致:电池温度每偏离最佳工作区间(20-35℃)1℃,容量衰减加速 1-2%;电机电控温度超过 120℃,功率输出骤降