第0001题 : 产生随机数(顺便读random模块官方文档)
看这个之前我准备先看一下random模块的官方文档...
在整个随机模块中, 最基础的就是random, 它产生一个 [0.0, 1.0)的浮点数. 这个模块下所有的函数实际上是绑定在一个叫做random.Ramdom的类的隐藏实例下的, 当然你可以自己实例化这个类从而得到新的随机数生成器, 同时random模块下还有一个叫做SystemRandom的类, 它使用系统函数 os.urandom()用操作系统提供的随机资源来来产生随机数.(不知所云...) 只挑了一部分看起来有用的函数...
ramdon.seed(a=None, version=2)
这个用来初始化随机数生成器, 如果a被忽略(也就是取默认值None), 那么就会以当前的系统时间为种.(如果系统提供了相应的随机资源则游戏那使用随机资源为种而不用系统时间), 如果a是一个int, 那么直接使用它. 当version是2的时候, str, bytes, bytearray 对象被转化为一个int 并且它所有的位都被使用, 如果版本1, 那么使用对a进行hash()产生的数值做种.
random.getrandbits(k)
返回一个k位随机的integer
random.range(stop) / random.randrange(start, stop[, step])
返回一个随机选择的元素从range(start, stop, step), 其实这和choice(range(start, stop, step))效果相同, 但是并不实际产生range对象...
random.randint(a, b)
返回一个 a <= N <= b 的整数, 相当于 randrange(a, b+1)
random.choice(seq)
从非空序列seq中随机选择一个元素, 如果传入的序列为空, 产生IndexError异常..
random.shuffle(x[, random])
对x进行随机排列, 可选参数是一个所需0个参数的函数, 它应该返回一个随机的浮点数范围是[0.0, 1.0), 默认来讲这个函数是random().
值得注意的是这个函数改变的是所传进去的列表x本身, 而返回值是None, 所以必须传一个引用进去, 这样使用没有任何意义 : random.shuffle([1,2,3,4])
random.sample(population, k)
返回一个长度为k的list, 从序列population中选出k个不同的元素来组成该list, 一般用来做抽样调查... (这里要注意的是产生的list中不会含有相同的元素, 如果k大于len(population), 会报错...)
剩下的一些函数感觉就是纯数学了, 也就不研究了...
源代码倒是很简单 ...
import string, random field = string.ascii_letters + string.digits
def getRandom():
return "".join(random.sample(field, 4))
def getRandomList():
return "-".join([getRandom() for _ in range(4)])
print(getRandomList())
第0001题 : 产生随机数(顺便读random模块官方文档)的更多相关文章
- 终端开发补充 : 读 curses模块官方文档...
curses是一个提供终端屏幕打印和键盘处理的库, 我个人的理解就是终端里的gui(当然它是基于文本的)... 写2048的时候用到了这个库, 所以现在过来好好研究一下这个库... 下面是文档内容 : ...
- [dpdk] 读官方文档(1)
前提:已读了这本书<<深入浅出dpdk(朱清河等著)>>. 目标:读官方文档,同时跟着文档进行安装编译等工作. http://dpdk.org/doc/guides/index ...
- 官方文档粗读 - Tutorial
参考: https://www.jianshu.com/p/0d234e14b5d3 1.Connecting 我们通过 create_engine() 来链接数据库,假设我们我们采用SQLite. ...
- [dpdk] 读官方文档(3)
续前节, 测试小程序 1. 想编译测试程序首先需要设置两个环境变量,为什么呢,因为测试程序的Makefile里用了... rpm装了打包好的devel包,这个rpm也会自带这两个环境变量.就是说写第三 ...
- 一起来读官方文档-----SpringIOC(04)
1.4.2.依赖性和详细配置 如上一节所述,您可以将bean属性和构造函数参数定义为对其他托管bean(协作者)的引用或内联定义的值.Spring的基于XML的配置元数据为此目的在其和元素中支持子元素 ...
- [dpdk] 读官方文档(2)
续前节.切好继续: 一,文档里提到uio_pci_generic, igb_uio, vfio_pci三个内核模块,完全搞不懂,以及dpdk-devbind.py用来查看网卡状态,我得到了下边的输出: ...
- 读jQuery官方文档:$(document).ready()与避免冲突
$(document).ready() 通常你想在DOM结构加载完毕之后才执行相关脚本.使用原生JavaScript,你可能调用window.onload = function() { ... }, ...
- 读jQuery官方文档:数据方法与辅助方法
数据方法 有时候你可能想要在元素上面储存数据.由于浏览器兼容性问题,用原生JavaScript处理元素上的数据可能会造成内存溢出,jQuery可以帮你自动处理这些问题: //储存和取出元素数据 $(' ...
- 读jQuery官方文档:样式
样式 使用jQuery,无论是设置或者获取元素样式都十分简便. // 支持驼峰式和分割线式,两种方式等价(原生JavaScript只支持驼峰式) $('h1').css('fontSize'); $( ...
随机推荐
- Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡...)
众所周知,想要让ImageView旋转的话,可以用setRotation()让其围绕中心点旋转,但这个旋转是不带动画的,也就是旋转屏幕时图片噌的一下就转过去了,看不到旋转的过程,此UI体验不大好,为此 ...
- android studio怎么添加.so文件?android studio加载so文件的方法
android studio 中 添加.so 文件,Android Studio中添加.jar文件和.so文件无疑是一件很重要也是很头疼的问题! 1.在src/main中添加 jniLibs文件夹 , ...
- html页面保存数的两种方式
原文链接:https://blog.csdn.net/qq_37936542/article/details/78866755 需求:微信开发时,在某个页面授权获取用户的openid,但是每次刷新页面 ...
- zxing的使用及优化
二维码介绍 zxing项目是谷歌推出的用来识别多种格式条形码的开源项目,项目地址为https://github.com/zxing/zxing,zxing有多个人在维护,覆盖主流编程语言,也是目前还在 ...
- 并发新特性—Executor 框架与线程池
兰亭风雨 · 更新于 2018-11-14 09:00:31 并发新特性-Executor 框架与线程池 Executor 框架简介 在 Java 5 之后,并发编程引入了一堆新的启动.调度和管理线程 ...
- NOIP模拟 table - 矩阵链表
题目大意: 给一个n*m的矩阵,每次交换两个大小相同的不重叠的子矩阵,输出最后的矩阵 题目分析: 这题向我们展示了出神入化的链表是如何炼成的.思想都懂,实现是真的需要技术,%%% 用一副链表来表示该矩 ...
- C++请求web service与xml解析
1. C++解析XML的开源库 在项目中XML的解析使用的是开源的第三方库,TinyXML:这个解析库的模型通过XML文件,然后再内存中生成DOM模型,从而让我们能够非常方便的遍历这颗XML树. DO ...
- 将普通java工程转换成maven工程
在MyEclipse10中将Maven项目转成普通Java项目后,想将Java项目转成Maven项目,结果一下子傻眼了.根本就没有攻略中提到的config标签.仔细一看,喵咪的,人家用的是Eclips ...
- 设置npm淘宝镜像
npm config set registry https://registry.npm.taobao.org
- DM365 IPNC软件架构具体解释
于2013在上半场 - 年DM365.DM368的IPNC(网络摄像机)与稳定性测试工作产品结束. 1.简单介绍: TI针对TMS320DM365.DM368进行了DVR和IPNC的应用方案參考.DV ...