Python编程学习:random.shuffle的简介、使用方法之详细攻略
chenpack 2025-06-26 07:30 16 浏览 0 评论
random模块是Python中一个用于生成随机数的模块,其中包含了生成伪代随机数的函数,有助于编写模拟程序或者生成随机输出的程序。需要注意的是这些数虽然看起来好像是完全随机的,但是他们背后的系统是可以预测的。如果要用于加密或者完全相关的功能,则应该使用os模块中的urandom。
random模块
random模块中一些重要的函数如下表所示:
函数 | 描述 |
random() | 返回一个0~1(含)的随机实数 |
getrandbits(n) | 以长整数的方式返回n个随机的二进制位 |
uniform(a, b) | 返回一个a~b(含)的随机实数 |
randrange([start], stop, [step]) | 从range(start, stop, step)中随机地选择一个数 |
choice(seq) | 从序列seq中随机地选择一个元素 |
shuffle(seq[, random]) | 就地打乱序列seq |
sample(seq, n) | 从序列seq中随机地选择n个值不同的元素 |
random.random():random模块中最基本的函数之一,也是最常用的函数,它返回一个0~1(包含)的伪随机数。
random.getrandbits():以一个整数的方式返回指定数量的二进制位。
random.uniform():它返回一个a~b(含)的随机(均匀分布的)实数。例如,如果你需要一个随机角度,可使用uniform(0, )。
random.randrange():是生成随机整数的标准函数。为指定这个随机整数所在的范围,你可像调用range那样给这个函数提供参数。
random.choice():从给定的序列中随机地选择一个元素。
random.shuffle():随机地打乱一个可变序列中的元素,并确保每种可能的排列顺序出现的概率相同。
random.sample():从给定序列中随机(均匀)地选择指定数量的元素,并确保所选择元素的值各不相同。
上面关于介绍的random模块中的函数的实例用法如下my_random.py程序所示:
my_random.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
# random()函数,返回一个0~1(包含)的随机实数
rand_num = random.random()
print('rand_num = {}'.format(rand_num))
rand_num = random.random()
print('rand_num = {}'.format(rand_num))
# getrandbits()函数
print(random.getrandbits())
# uniform()函数,返回一个a~b(包含)的随机实数
uni_rand_num = random.uniform(1, )
print('uni_rand_num = {}'.format(uni_rand_num))
# randrange()函数,从指定的范围中随机选择一个数。
rand_range_num = random.randrange(1, )
print('rand_range_num = {}'.format(rand_range_num))
# choice()函数,从给定的序列中随机选择一个数,与randrange()函数类似。
sequence = list(range(1, ))
print('sequence = {}'.format(sequence))
rand_choice = random.choice(sequence)
print('rand_choice = {}'.format(rand_choice))
# shuffle()函数,随机打乱给定的可变序列的元素索引位置
sequence = list(range(1, ))
print('sequence = {}'.format(sequence))
random.shuffle(sequence)
print('sequence = {}'.format(sequence))
# sample()函数,从给定的序列中随机选择指定数量的元素,各个元素只不同
sequence = list(range(1, ))
print('sequence = {}'.format(sequence))
samp_rand_nums = random.sample(sequence, 5)
print('samp_rand_nums = {}'.format(samp_rand_nums))
程序执行结果如下所示:
rand_num =
rand_num =
uni_rand_num =
rand_range_num = 5
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rand_choice = 8
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9, , , , , , , , , , ]
sequence = [2, , , , , 4, 9, , 7, 5, 3, , 6, , 8, , , 1, ]
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9, , , , , , , , , , , , , , , , , , , , , , , , , , ]
samp_rand_nums = [, , 1, , 7]
总结
本节主要介绍了以下内容:
- random模块中的常用函数及其用法。
下一节将会介绍shelve模块和json模块,敬请关注!
如果有需要文中小程序的可以私信我哟!
创作不容易,还请点个赞!喜欢的小伙伴请点关注、收藏!
欢迎大家转发、评论!
相关推荐
- 微波射频信号模块,射频信号源,便携式微波信号源
-
射频信号源DSG5000_微波信号发生器_信号发生器多少钱_信号发生器射频信号源DSG5000_微波信号发生器_信号发生器多少钱_信号发生器DSG5000系列微波信号发生器频率范围为9kHz至...
- python 中的且或非_python 与 或 非
-
一文理解Python中的类型提示Python的流行源于其简洁性和可读性。然而,作为一种动态类型语言,其灵活性有时会导致运行时错误和由于数据类型不正确而出现意外行为。这是类型提示和静态类型检查发...
- 介绍几款知名的工作流系统软件
-
最全工作流引擎大全:从开源到商业workflow-engines最全工作流引擎大全:从开源到商业,一文掌握所有主流方案引言在当今复杂的软件开发环境中,工作流引擎已经成为构建可靠、可扩展系统的关...
- raid阵列公开课:Raid5阵列重组及恢复数据方法
-
服务器数据恢复—5盘RAID5阵列重建为4盘raid5阵列的数据恢复案例服务器数据恢复环境&故障:一台服务器,有一组由5块硬盘组建的raid5磁盘阵列。服务器在运行过程中一块有磁盘掉线,由于raid5...
- 卡巴斯基KIS_卡巴斯基kis激活码
-
卡巴斯基很“卡”怎么办卡巴斯基的查杀能力确实出色,但常被用户诟病的是,它会让电脑运行变慢。如果直接关闭又不安全,可以适当下调其保护级别,从而提升系统速度。毕竟,在很多场景下,并不需要过度全面的防护。1...
- mysql使用sock连接 命令 mysql查看sock文件在哪
-
MySQL如何找到使用的是哪个配置文件?一个正在运行的MySQL实例,如何查看对应的配置文件用的是哪一个?如果存在多个文件,生效的顺序是怎么样的?1.方法一首先可以先选择查看MySQL进程信息来判断...
- 寄存器python_寄存器是什么
-
老翁学python编程(五)岁老翁学python,今天看小老头是如何学习python编程的循环及循环嵌套的?程序的循环和循环嵌套是编程的重要基础知识。好的程序循环语句如清泉流水,清晰明了,好读好看。不...
- 软件制作:QQPenguin辅助工具
-
手把手教你用deepseek制作单词拼写游戏和单词消消乐(保姆级教)先看一看我们的最终成型的3款自己制作的游戏,只需要用Windows系统自带的文档工具编写。整个过程我们做了一个视频教程<ifr...
- 深入解读应用可观测性_可观测量
-
Kubelet可观测性最佳实践Kubelet介绍Kubelet是Kubernetes集群中的一个核心组件,它在每个节点上运行并负责维护容器的生命周期。这包括创建和删除容器、监控容器的健康状况...
- 为什么使用oss而不是用mysql oss使用场景
-
把mysql数据库备份到阿里云OSS前言双买了阿里云的ECS服务器,经过一段时间的奋战,终于搞定了网站备案和环境搭建,基于wordpress搭建了自己的博客网站做好后,阿里云的销售向...
- P2P网贷平台如何运用大数据进行风控
-
大数据风控失灵?中国网贷坏账率攀升背后的“信用孤岛”困局在当今互联网金融蓬勃发展的时代,互联网贷款像一股汹涌的浪潮,冲击着传统金融借贷模式,以其便捷、高效、灵活等特点,迅速赢得了无数借贷者的青睐。无论...
- python Chaojiying python超级鹰模拟登录bilibili
-
从小白到高手|尚硅谷Python爬虫视频教程值得拥有离人心头一叶秋,别后恨悠悠。倦容初醒,倚栏观水,西风难休。春来碧水盼君归,暖炉煨酒。夜半寒影,孤衾若冰,何处遣愁。——小红《九月一日忆东北著名...
- Python实现维纳滤波器_维纳滤波函数matlab代码
-
一文读懂维纳滤波的基本原理及其优劣维纳滤波(wienerfiltering)一种基于最小均方误差准则、对平稳过程的最优估计器。这种滤波器的输出与期望输出之间的均方误差为最小,因此,它是一个最佳滤波...
- 网络工程师考试2006年上半年上午试题解析(三)
-
年上半年网络工程师上、下午试卷与答案全国计算机技术与软件专业技术资格(水平)考试年上半年网络工程师上午试卷●高速缓存Cache与主存间采用全相联的地址影像方式,高速缓存的容量为4MB,分为4...
- wscript.exe_wscript.exe下载
-
钓鱼攻击通过PDF文档暗投后门病毒钓鱼攻击是一种高度隐蔽且极具欺骗性的网络威胁,攻击者通过伪装成银行、保险公司、税务机构或其他可信机构的官方文件,诱导受害者点击下载恶意文件。而在生活和工作中,电子文档...
你 发表评论:
欢迎- 一周热门
-
-
维基百科Wikipedia镜像网站列表
-
超炫html+css+javascript幻化3D相册 (含背景音乐)程序员表白必备
-
6款图片查看器,丝滑干净无广告!(图片查看器软件)
-
不能读取文件“itunes.library.itl”因为它是由更高级别的itunes所创建的
-
用java编写一个QQ群发信息_用java语言写qq聊天程序
-
StreamReader StringReader 区别 reader和inputstream的区别
-
安卓系统手机文件夹及其文件详细解析
-
Windows Server 2003 详细安装与配置
-
c86 架构是国产 国产x86架构芯片
-
作为一名独立开发者,我是如何建立我的科技创业公司的
-
- 最近发表
- 标签列表
-
- int.tryparse (62)
- list转list (108)
- repeat函数 (66)
- git force (69)
- springboot /error (71)
- mysql 更新 (74)
- save as pdf (63)
- lock tables (66)
- 同步 异步 阻塞 非阻塞 (62)
- rsyslog (66)
- querystring (63)
- c++ override (70)
- css 动画库 (61)
- vsphere web client (65)
- int32_t (63)
- c# task.run (68)
- find -size (64)
- golang flag包 (70)
- 二维数组作为参数传入函数 (62)
- sudo su root (60)
- crontab 安装 (61)
- c# 数组转成list (60)
- 下拉按钮 (64)
- 滚动条美化 (61)
- stringutils (61)