Python从题目中学习:random() module
最近在给公司培训Python,布置了一道题:
-------------------------------------------------------------------------------------------
Generate 10 random floats(value range is (-2.0,2.0) and precision is 1) and save as list;
Such as: [-0.7, 0.8, 1.6, 0.1, 0.3, -1.0, 0.4, 1.0, 0.5, 0.7] ;
-------------------------------------------------------------------------------------------
因为用到了random模块,在此做一个总结:
random() |
类似于uniform(),只不过下限恒等于0.0,上限恒等于1.0 |
randint() |
两个整型参数,返回二者之间的随机整型 |
randrange() |
它接受和range()函数一样的参数,随机返回range([start,]stop[,step])结果的一项 |
uniform() |
几乎和randint()一样,不过他返回的是二者之间的一个浮点型(不包括范围上限) |
sample(seq,k) |
从指定序列中随机获取指定长度的片断 |
choice() |
随机返回给定序列的一个元素 |
shuffle() |
用于将一个列表中的元素打乱 |
random模块用于生成随机数,下面列举几个常用的函数。
①random.random
| random(...)| random() -> x in the interval [0, 1).
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
>>> random.random() 0.7361643505007011
②random.uniform
| uniform(self, a, b)| Get a random number in the range [a, b) or [a, b] depending on rounding.
random.uniform(a, b),用于生成一个指定范围内的随机符点数。
如果 a>b,则生成的随机数n在[a,b]之间: a <= n <= b;
如果 a<b,则生成的随机数n在[a,b]之间: b <= n <= a。
>>> random.uniform(10,20) 18.084480262346535 >>> random.uniform(20,10) 12.289824189134892
③random.choice
| choice(self, seq)
| Choose a random element from a non-empty sequence.
random.choice(self, seq)会从序列中获取一个随机元素。
参数seq表示一个有序类型。字符串,list,tutple都属于sequence。
>>> random.choice("PythonRandomModule")#字符串 'P' >>> random.choice(["Delon","is","a","nice","boy"])#列表 'a' >>> random.choice(("Tuple1","Tuple2","Tuple3"))#元组 'Tuple1'
④random.randint
| randint(self, a, b)
| Return random integer in range [a, b], including both end points.
random.randint(a, b),用于生成一个指定范围内的整数。生成的随机数n在[a,b]之间: a <= n <= b。(结束点b必须大于起始点a。)
>>> random.randint(2,10)#随机数在[2,10]之间 8 >>> random.randint(10,10)#结果永远是10 10 >>> random.randint(10,2)#语法错误 raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width) ValueError: empty range for randrange() (10,3, -7)
⑤random.randrange
| randrange(self, start, stop=None, step=1, _int=<type 'int'>, _maxwidth=9007199254740992L)
| Choose a random item from range(start, stop[, step]).
|
| This fixes the problem with randint() which includes the
| endpoint; in Python this is usually not what you want.
random.randrange([start], stop[, step]) 在指定范围内,获取一个随机数从 指定的step生成的递增集合中。
比如random.randrange(10,100,2),就相当于从[10,12,14,16,18,.....,94,96,98]的序列中获取一个随机数。
random.randrange(10,100,2)与random.choice(range(10,100,2))一样。
>>> random.randrange(10,100,2) 48 >>> random.choice(range(10,100,2)) 18
⑥random.sample
| sample(self, population, k)
| Chooses k unique random elements from a population sequence.
|
| Returns a new list containing elements from the population while
| leaving the original population unchanged. The resulting list is
| in selection order so that all sub-slices will also be valid random
| samples. This allows raffle winners (the sample) to be partitioned
| into grand prize and second place winners (the subslices).
|
| Members of the population need not be hashable or unique. If the
| population contains repeats, then each occurrence is a possible
| selection in the sample.
|
| To choose a sample in a range of integers, use xrange as an argument.
| This is especially fast and space efficient for sampling from a
| large population: sample(xrange(10000000), 60)
|
random.sample(sequence, k),从指定序列中随机获取指定长度的片断。
>>> list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> slice = random.sample(list,5) >>> slice [6, 5, 10, 9, 2] >>> list#原序列不会因为sample而改变 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
⑦random.shuffle
| shuffle(self, x, random=None)
| x, random=random.random -> shuffle list x in place; return None.
|
| Optional arg random is a 0-argument function returning a random
| float in [0.0, 1.0); by default, the standard random.random.
random.shuffle(x[, random]),用于将一个列表中的元素打乱。
>>> list = ["Python","is","powerful","languange"] >>> random.shuffle(list) #打乱 >>> list ['powerful', 'is', 'languange', 'Python']
-----------------------------------------------------------------------------------------
接下来举几个例子:
例子1:(参考http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html):
#随机生成[0,99]的整数: >>> import random >>> random.randint(0,99) 21#随机选取0到100间的偶数: >>> random.randrange(0, 101, 2) 42#随机浮点数: >>> random.random() 0.85415370477785668 >>> random.uniform(1, 10) 5.4221167969800881#随机字符: >>> import random >>> random.choice('abcdefg&#%^*f') 'd'#多个字符中选取特定数量的字符: >>> random.sample('abcdefghij',3) ['a', 'd', 'b']#多个字符中选取特定数量的字符组成新字符串: >>> import string >>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).replace(" ","") 'fih'#随机选取字符串: >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] ) 'lemon'#洗牌: >>> import random >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items [3, 2, 5, 6, 4, 1]
例子2:(参考http://blog.csdn.net/xiaocaiju/article/details/6973175):
import random result = random.random() print result #生成0-1的随机数 0.6595765656210394print random.uniform(10,12) #10-12的随机数 10.806990108392618 print random.randint(30,50) #30-50的随机整数 50print random.randrange(10,100,2) #从10开始到100结束,步长为2的序列中,随机选一个 22list = [1,2,5,6,7,8,8] print random.choice(list) #从序列中随机选一个 5random.shuffle(list) #重新排列序列 print list [5, 2, 1, 6, 8, 8, 7]list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从序列中取样 print slice [7, 3, 2, 5, 10]
现在回到文章开头的问题,代码如下:
""" Generate 10 random floats(value range is (-2.0,2.0) and precision is 1) and save as list;Such as: [-0.7, 0.8, 1.6, 0.1, 0.3, -1.0, 0.4, 1.0, 0.5, 0.7] ;""" >>> [round(random.uniform(-2,2),1) for i in range(10)] #[-1.0, -1.0, -1.7, 1.0, -1.1, 1.9, 1.7, 0.2, -0.9, 1.1]
转载于:https://www.cnblogs.com/dzblog/p/3924813.html
Python从题目中学习:random() module相关推荐
- python comprehension_Python从题目中学习:List comprehension
九九乘法表作业其实有更简单的做法,就是用列表推导式. ------------------------------------------------------------------------- ...
- Python标准库中的random
1.随机生成浮点数(0,1) import randomdef produceRandom():print("random():", random.random())produce ...
- python 练习题目
练习题目 一.语言元素 练习1:华氏温度转摄氏温度. 摄氏温度©与华氏温度(F)的换算式是:C = 5×(F- 32)/9,F = 9×C /5+32. # 华氏温度转摄氏温度 # 输入华氏温度,通过 ...
- python将数组传入mysql_通过python将文件中的数据传输到MySQL,传到,mysql
我们需要几个包来实现这一功能,下面我和详细讲一下这几个包 一.pymysql 要传数据到数据库中肯定先要连接数据库 ①连接数据库 db = pymysql.connect('localhost', ' ...
- python随机选取字符串_Python random模块sample、randint、shuffle、choice随机函数概念和应用...
Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等. random中的一些重要函数的用法: 1 ).random() 返 ...
- python randint函数边界_Python random模块sample、randint、shuffle、choice随机函数
一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...
- python中module用法_Python学习之module用法
Python学习之module用法 Python学习之module用法 为什么80%的码农都做不了架构师?>>> Python has a way to put definition ...
- 在翻译PEP8中学习 -- Style Guide for Python Code
翻译了好久, 终于把这篇文档翻完了, 学到很多. 自从考研结束后就没有翻译过文章了, 一开始还以为考研英语78分的我翻译能力还可以, 结果打脸. 凡是得练习啊! 官方原文: PEP8 Style Gu ...
- 「从源码中学习」面试官都不知道的Vue题目答案
前言 当回答面试官问及的Vue问题,我们除了照本宣科的回答外,其实还可以根据少量的源码来秀一把,来体现出你对Vue的深度了解. 本文会陆续更新,此次涉及以下问题: "new Vue()做了什 ...
最新文章
- 前端实时刷新数据_产品又让我造数据
- Nature Protocols:整合高通量组学数据集鉴定潜在机制联系的计算框架
- python 单链表是否有回路_第5章 第1节 链表
- jeecg-framework-3.3.2-RELEASE 最新版本发布
- 实现 消息提醒图标_Mac 上自带的「提醒事项」千万别错过
- RhinoMock入门(6)——安装结果和约束
- 【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍
- JAVA JDBC常见面试题及答案
- Java 员工信息管理系统
- List集合去重的几种方法
- 【电源专题】脉宽调制(PWM)与脉冲频率调制(PFM)
- 立秋后注意脚部保暖 试试量身定制合脚鞋
- linux驱动——内核通知链(探究i2c-dev.c 中的bus_register_notifier函数所得)
- 自学python网站-杭州python自学网站
- 使用MIT JWI(Java WordNet Interface)查询WordNet反义词
- 爬虫进阶之路---处理点触验证码(使用超级鹰API接口处理;以解决12306的图片验证码为例;)
- 【渝粤教育】电大中专混凝土结构题库作业 题库
- vue框架 做后台管理系统的总结(WZ)
- StackOverflow和OutOfMemory
- 多元统计分析——数据降维——因子分析(FA)