1.4 random模块
Python中的random模块用于生成随机数,下面介绍一下random模块中最常用的几个函数。
国际惯例,用模块之前先导入:
>>> import random
(一)random.random() :生成一个0到1的随机符点数: 0 <= n < 1.0,注意范围是包含0不包含1.0的
>>> random.random() 0.9860525014920107 >>> random.random() 0.022209392510227688 >>>
(二)random.uniform() :生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。如果a=b,则生成的随机数n:n=a=b
>>> random.uniform(1,2) 1.5701537578549036 >>> random.uniform(6,7) 6.328964651708305 >>> random.uniform(6,6) 6.0 >>> random.uniform(7,6) 6.67299824947645
(三)random.randint(a, b):生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。如果a>b,会报错。
>>> random.randint(1,10) 3 >>> random.randint(6,6) 6 >>> random.randint(8,3) Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> random.randint(8,3) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 218, in randint return self.randrange(a, b+1) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) ValueError: empty range for randrange() (8,4, -4) >>>
(四)random.randrange([start], stop[, step]):从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(1, 10, 2),结果相当于从[1, 3, 5, 7, 9]序列中获取一个随机数。random.randrange(1, 10, 2)在结果上与 random.choice(range(1, 10, 2) 等效。
1 >>> random.randrange(1,10,2) 2 1 3 >>> random.randrange(1,10,2) 4 9 5 >>> random.randrange(10,1,2) #表示范围的两个参数必须满足的条件:start < stop 6 Traceback (most recent call last): 7 File "<pyshell#19>", line 1, in <module> 8 random.randrange(10,1,2) 9 File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 210, in randrange 10 raise ValueError("empty range for randrange()") 11 ValueError: empty range for randrange() 12 >>> random.randrange(10,10,2) 13 Traceback (most recent call last): 14 File "<pyshell#20>", line 1, in <module> 15 random.randrange(10,10,2) 16 File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 210, in randrange 17 raise ValueError("empty range for randrange()") 18 ValueError: empty range for randrange() 19 >>> random.randrange(1,2,3) #如果前两个参数的差值stop - start <= step,则生成的随机数为start 20 1 21 >>> random.randrange(1,4,3) 22 1 27 >>> random.randrange(1,5,3) 28 1 31 >>> random.randrange(1,5,3) 32 4 >>> random.randrange(5) #当传入一个参数时,默认start = 0,把传入的参数赋值给stop 2 >>> random.randrange(5,2) #当只传入两个参数时,必须满足 start < stop 否则会报错哦 Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> random.randrange(5,2) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) ValueError: empty range for randrange() (5,2, -3) >>> >>> random.randrange(5,5) Traceback (most recent call last): File "<pyshell#43>", line 1, in <module> random.randrange(5,5) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) ValueError: empty range for randrange() (5,5, 0) >>> >>> random.randrange(2,5) 4 >>>
(五)random.choice(sequence):从参数序列中从序列中获取一个随机元素。参数sequence表示一个有序类型。
>>> random.choice('abcdef') 'f' >>> random.choice([1,2,3]) 3 >>> random.choice(1,2,3) Traceback (most recent call last): File "<pyshell#58>", line 1, in <module> random.choice(1,2,3) TypeError: choice() takes 2 positional arguments but 4 were given >>> random.choice((1,2,3)) 3 >>> random.choice(1,3) Traceback (most recent call last): File "<pyshell#60>", line 1, in <module> random.choice(1,3) TypeError: choice() takes 2 positional arguments but 3 were given >>> random.choice(range(1,5)) 3 >>> random.choice(random.random()) Traceback (most recent call last): File "<pyshell#62>", line 1, in <module> random.choice(random.random()) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 253, in choice i = self._randbelow(len(seq)) TypeError: object of type 'float' has no len() >>> random.choice(random.randint(1,5)) Traceback (most recent call last): File "<pyshell#63>", line 1, in <module> random.choice(random.randint(1,5)) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 253, in choice i = self._randbelow(len(seq)) TypeError: object of type 'int' has no len() >>>
(六):random.shuffle(x[, random]),用于将一个列表中的元素打乱。
>>> l = [1,2,3,4,5] >>> random.shuffle(l) >>> l [3, 2, 1, 4, 5] >>> >>> t = (1,2,3,4,5) #下面这两个报错的例子说明了shuffle函数的参数不能是不可变类型的序列。 >>> random.shuffle(t) Traceback (most recent call last): File "<pyshell#80>", line 1, in <module> random.shuffle(t) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 272, in shuffle x[i], x[j] = x[j], x[i] TypeError: 'tuple' object does not support item assignment >>> s='my name is wangmanyi' >>> random.shuffle(s) Traceback (most recent call last): File "<pyshell#82>", line 1, in <module> random.shuffle(s) File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 272, in shuffle x[i], x[j] = x[j], x[i] TypeError: 'str' object does not support item assignment >>>
(六)random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
>>> l = [1,2,3,4,5,6,7,8,9,10] >>> random.sample(l,3) [1, 10, 3] >>> >>> t = (1,2,3,4,5,6,7,8,9,10) >>> random.sample(t,3) [3, 1, 8] >>> >>> s = 'my name is wangmany' >>> random.sample(s,3) ['n', 'm', 'i']
上面只是整理了一部分常用的random中的函数,将来工作中应该够用了。
1.4 random模块的更多相关文章
- getpass模块和random模块
getpass模块 用于对密码的隐藏输入案例: import getpass passwd = getpass.getpass("please input your password&quo ...
- Python中的random模块,来自于Capricorn的实验室
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- 随机内容生成(random模块)
摘抄于: 低调的python小子 当梦想照进现实 幸福近在咫尺 [jpg]http://ip.ipwind.cn/msn.png[/jpg] Python中的random模块用于生成随机数.下面介绍 ...
- Python中的random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- Python random模块 例子
最近用到随机数,就查询资料总结了一下Python random模块(获取随机数)常用方法和使用例子. 1.random.random random.random()用于生成一个0到1的随机符点数: ...
- python学习之random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET
python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...
- 你真的用好了Python的random模块吗?
random模块 用于生成伪随机数 源码位置: Lib/random.py(看看就好,千万别随便修改) 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结 ...
- python 简单验证码 random模块
random 模块,产生随机数: chr 将数字转成字母. ascii 数字与字符对应表 链接 import randomtemp=""for i in range(0,4): r ...
随机推荐
- python_18_反射
什么是反射? -- 通过输入字符串来获取和修改 类(属性+方法),用字符串来映射内存对象,用于人机交互 反射有哪几种方法? -- getattr() --获取字符串 ...
- python_计算1+……+100中偶数和
如何计算1+--+100中偶数和? 1. 把奇数去掉,通过if,判断累加数除以2的余数,是否为1,判断是否是奇数 2. 通过continue 跳过对奇数的累加 #!/usr/bin/python3 d ...
- 四、Html常用标签
1,列表相关标签 <ul>:定义无序列表,只能包含<li>子元素 <ol>:定义有序列表,只能包含<li>子元素,因为这个标签是有序的,所有这个标签还有 ...
- 计算机改名引发的ORA
近期上班时,由于开机时老是提示" 局域网出现计算机重名冲突",于是把计算机名字给改了,从PC2010081312zeo改为了CXBIKKKKKKK,结果第二天来的时候,用PL/SQ ...
- 2018-01-28-M个本地工作点代码同步到N个GIT远端
layout: post title: 2018-01-28-M个本地工作点代码同步到N个GIT远端 key: 20180128 tags: IT GIT modify_date: 2018-01-2 ...
- Node.js:上传文件,服务端如何获取文件上传进度
内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题<nodejs multer有没有查看文件 ...
- 认识Webpack
认识Webpack 网上已经有不少Webpack教程入门教程了. 本文记录了我以我的方式方法.思路认识了解Webpack.从官方的Tutorial入手,不断提出问题.解决,一步一步认识Webpac ...
- 关于Linux的常忘命令积累
1.在vim中显示行号 在/etc/vimrc里加上一行 set nu! 2./etc/sysconfig/network-scripts/ifcfg-eth0 (DNS1=192.168.1 ...
- 解析js中作用域、闭包——从一道经典的面试题开始
如何理解js中的作用域,闭包,私有变量,this对象概念呢? 就从一道经典的面试题开始吧! 题目:创建10个<a>标签,点击时候弹出相应的序号 先思考一下,再打开看看 //先思考一下你会怎 ...
- java.util.logging.Logger基础
1. 定义 java.util.logging.Logger是Java自带的日志类,可以记录程序运行中所产生的日志.通过查看所产生的日志文件,可以分析程序的运行状况,出现异常时,分析及定位异常. 2. ...