Python 实现随机数详解及实例代码
Python3实现随机数
- random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。
- random.seed(x)改变随机数生成器的种子seed。
- 一般不必特别去设定seed,Python会自动选择seed。
- random.random() 用于生成一个随机浮点数n,0 <= n < 1
- random.uniform(a,b) 用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b;
- random.randint(a,b) 用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a<=n<=b;若a=b,则n=a;若a>b,报错
- random.randrange([start], stop [,step])从指定范围[start,stop)内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
- random.choice(sequence)从序列中获取一个随机元素,参数sequence表示一个有序类型,并不是一种特定类型,泛指list,tuple,字符串等
- random.shuffle(x[,random]) 用于将一个列表中的元素打乱(洗牌),会改变原始列表
- random.sample(sequence,k) 从指定序列中随机获取k个元素作为一个片段返回,不会改变原有序列
但是,有一点需要注意:Python random是伪随机数。
那么,可以借用python random实现真随机数吗?答案是No。所谓真随机数,是要求根据绝对随机事件产生的数,也就是说要求要有一个无因果关系的随机事件,那么,这玩意只存在与哲学领域……
目前的随机数产生都是统计上的随机,因为随机源都是自然事件,顶天了算是混沌变量,绝对的无因果大概是不存在的。
不过统计随机基本上都够用了吧……
还是老老实实的用random模块吧….
代码演示
import random #随机整数 import string print(random.randint(0,99)) #随机选取0到100间的偶数 print(random.randrange(0, 101, 2)) #随机浮点数 print(random.random()) print(random.uniform(1, 10)) #随机字符 print(random.choice('abcdefg&#%^*f')) #多个字符中选取特定数量的字符 print(random.sample('abcdefghij',3)) #多个字符中选取特定数量的字符组成新字符串 # print(string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).replace(" ","")) #随机选取字符串 print(random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )) #洗牌 items = [1, 2, 3, 4, 5, 6] random.shuffle(items) print("洗牌:", items) #从指定序列中随机获取k个元素作为一个片段返回,不会改变原有序列 list = [] list = random.sample(items,2) print(list)
结果
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Python实现基于权重的随机数2种方法
问题: 例如我们要选从不同省份选取一个号码,每个省份的权重不一样,直接选随机数肯定是不行的了,就需要一个模型来解决这个问题. 简化成下面的问题: 字典的key代表是省份,value代表的是权重,我们现在需要一个函数,每次基于权重选择一个省份出来 {"A":2, "B":2, "C":4, "D":10, "E": 20} 解决: 这是能想到和能看到的最多的版本,不知道还没有更高效好用的算法. #!/usr/
-
Python中random模块生成随机数详解
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <
-
python3生成随机数实例
本文实例讲述了python3生成随机数的方法.分享给大家供大家参考.具体实现方法如下: 该实例是根据一本书上看到过一个随机数的小程序,经过自己改动,变为了一个猜数字的小游戏,现在在python3下重写了一遍. 这是一个控制台下的猜数程序,winxp+python3.2+eric5和IDLE测试通过,但直接用winxp的命令行运行有问题,原因还未知,慢慢找.ubuntu+python3.1测试通过. 具体实现代码如下: 复制代码 代码如下: # -*- coding: utf-8 -*- impo
-
Python常用随机数与随机字符串方法实例
随机整数: 复制代码 代码如下: >>> import random >>> random.randint(0,99) 21 随机选取0到100间的偶数: 复制代码 代码如下: >>> import random >>> random.randrange(0, 101, 2) 42 随机浮点数: 复制代码 代码如下: >>> import random >>> random.random() 0.8
-
python生成指定长度的随机数密码
复制代码 代码如下: #!/usr/bin/env python# -*- coding:utf-8 -*- #导入random和string模块import random, string def GenPassword(length): #随机出数字的个数 numOfNum = random.randint(1,length-1) numOfLetter = length - numOfNum #选中numOfNum个数字 slcNum = [random.cho
-
python 随机数生成的代码的详细分析
以下的文章主要是以介绍python随机数生成的代码来介绍Python随机数生成在实际操作过程中的具体应用,如果你对其的相关内容感兴趣的话,你就可以点击以下的文章.希望你会对它有所收获. Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. 复制代码 代码如下: random.randomrandom.random() 用于生成一个0到1的随机符点数: 复制代码 代码如下: 0 <= n < 1.0random.uniformrandom.unifor
-
Python生成随机数的方法
如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文章的介绍. random.random()用于生成 用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成随机数 n: a <= n <= b.如果 a <b, 则 b <= n <= a. print random.uniform(
-
Python random模块(获取随机数)常用方法和使用例子
random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniformrandom.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <b, 则 b <= n <= a 复制代码 代码如下: print random.uniform(10, 20)print rand
-
python 生成不重复的随机数的代码
复制代码 代码如下: import random print 'N must >K else error' n=int(raw_input("n=")) k=int(raw_input("k=")) result=[] x=range(n) for i in range(k): t=random.randint(i,n-1) temp=x[i] x[i]=x[t] x[t]=temp result.append(x[i]) print result raw_i
-
Python 实现随机数详解及实例代码
Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. random.random() 用于生成一个随机浮点数n,0 <= n < 1 random.uniform(a,b) 用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b; random.randint(a,b) 用于生成一个指定范围内的整数,a
-
Python heapq使用详解及实例代码
Python heapq 详解 Python有一个内置的模块,heapq标准的封装了最小堆的算法实现.下面看两个不错的应用. 小顶堆(求TopK大) 话说需求是这样的: 定长的序列,求出TopK大的数据. import heapq import random class TopkHeap(object): def __init__(self, k): self.k = k self.data = [] def Push(self, elem): if len(self.data) < self
-
Python 爬虫多线程详解及实例代码
python是支持多线程的,主要是通过thread和threading这两个模块来实现的.thread模块是比较底层的模块,threading模块是对thread做了一些包装的,可以更加方便的使用. 虽然python的多线程受GIL限制,并不是真正的多线程,但是对于I/O密集型计算还是能明显提高效率,比如说爬虫. 下面用一个实例来验证多线程的效率.代码只涉及页面获取,并没有解析出来. # -*-coding:utf-8 -*- import urllib2, time import thread
-
Python运算符重载详解及实例代码
Python运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同.鉴于它的特殊性,今天就来讨论一下Python运算符重载. Python语言本身提供了很多魔法方法,它的运算符重载就是通过重写这些Python内置魔法方法实现的.这些魔法方法都是以双下划线开头和结尾的,类似于__X__的形式,python通过这种特殊的命名方式来拦截操作符,以实现重载.当Python的内置操作运用于类对象时,Python会去搜索并调用对象中指定的方法完成操作. 类可以
-
Python 字典的使用详解及实例代码
目录 字典长什么样 字典内能放什么 访问字典内容 修改字典内容 删除字典数据 字典内置函数 字典是Python实现散列表数据结构的形式,表现映射的关系,一对一. 字典长什么样 {}这是一个空字典,可以看出字典是由两个花括号组成的. 在看这个{'a':1},这里面装了一对数据,'a'可称为键,1称为值 这个{'键1':'值1', '键2':'值2'}每一对数据 字典内能放什么 字典内的健是唯一的,在字典内所有内容中只存在一个,但值可以重复出现. 健只能是不变的值,比如字符串,数字,元组 值可以随意
-
Python 操作MySQL详解及实例
Python 操作MySQL详解及实例 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3. PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3. SQLA
-
Python生成随机数详解流程
目录 一.随机数种子 二.生成随机数 1.random() 2.ranint(a,b) 3.randrange(start,stop[,step]) 4.getrandbits(k) 三.生成随机序列 1.choice(seq) 2.samplex(序列,k) 3.shuffle(x[,random]) 一.随机数种子 为什么要提出随机数种子呢?咱们前面提到过了,随机数均是模拟出来的, 想要模拟的比较真实,就需要变换种子函数内的数值,一般以时间戳为随机函数种子. 例如以下案例,将随机数种子固定的
-
MyBatis获取数据库自生成的主键Id详解及实例代码
MyBatis获取数据库自生成的主键Id详解及实例代码 在使用MySQL数据库时我们一般使用数据库的自增主键自动产生主键.如果在插入主表时,我们需要同时插入从表的数据,这时我们通常需要知道主表插入时自动产生的主键Id值. 下面介绍使用MyBatis进行插入时,如何同时获取数据库自生成的主键: 1.XML配置文件 <insert id="insert" parameterType="Person" useGeneratedKeys="true"
-
MySQL 序列 AUTO_INCREMENT详解及实例代码
MySQL 序列 AUTO_INCREMENT详解及实例代码 MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列. 使用AUTO_INCREMENT MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列. 实例 以下实例中创建了数据表insect, insect中id无需指定值可实现自动增长. mysql>
-
Java 两种延时thread和timer详解及实例代码
Java 两种延时thread和timer详解及实例代码 在Java中有时候需要使程序暂停一点时间,称为延时.普通延时用Thread.sleep(int)方法,这很简单.它将当前线程挂起指定的毫秒数.如 try { Thread.currentThread().sleep(1000);//毫秒 } catch(Exception e){} 在这里需要解释一下线程沉睡的时间.sleep()方法并不能够让程序"严格"的沉睡指定的时间.例如当使用5000作为sleep()方法的参数时,线 程
随机推荐
- 探寻Android的线程问题
- 第8天:CSS布局入门
- SQL2008中SQL应用之- 死锁(Deadlocking)
- 详解Tomcat服务器绑定多域名和虚拟目录的方法
- dos 文件复制 copy命令
- 利用Java发送邮件的实现代码
- asp.net生成静态页并分页+ubb第1/2页
- asp.net中生成饼状与柱状图实例
- 解析ABP框架中的事务处理和工作单元
- javascript学习笔记(七)利用javascript来创建和存储cookie
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- c++ *运算符重载
- onmouseover事件和onmouseout事件全面理解
- Python删除指定目录下过期文件的2个脚本分享
- mysql 10w级别的mysql数据插入
- SQL Server中的T-SQL的基本对象
- Android图片压缩(质量压缩和尺寸压缩)
- 解析window.open的使用方法总结
- Android 模拟信号示波器示例代码
- 简介Java编程中的Object类