Python中random模块生成随机数详解

本文给大家汇总了一下在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 <= n <= a。

    

print random.uniform(10, 20) 

print random.uniform(20, 10) 

#---- 结果(不同机器上的结果不一样) 

#18.7356606526 

#12.5798298022 



random.randint



  random.randint()的函数原型为:random.randint(a,
b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n
<= b  
 

print random.randint(12, 20) #生成的随机数n: 12 <= n
<= 20 

print random.randint(20, 20) #结果永远是20 

#print random.randint(20, 10)
#该语句是错误的。下限必须小于上限。 



random.randrange



  random.randrange的函数原型为:random.randrange([start], stop[,
step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100,
2),结果相当于从[10, 12, 14, 16, ... 96,
98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与
random.choice(range(10, 100, 2) 等效。



random.choice



  random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明
一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple,
字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:  
 

print random.choice("学习Python") 

print random.choice(["JGood", "is", "a", "handsome",
"boy"]) 

print random.choice(("Tuple", "List",
"Dict")) 



random.shuffle



  random.shuffle的函数原型为:random.shuffle(x[,
random]),用于将一个列表中的元素打乱。如:  
 

p = ["Python", "is", "powerful", "simple", "and so
on..."] 

random.shuffle(p) 

print p 

#---- 结果(不同机器上的结果可能不一样。) 

#['powerful', 'simple', 'is', 'Python', 'and so
on...'] 



random.sample



  random.sample的函数原型为:random.sample(sequence,
k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。  
 

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

slice = random.sample(list, 5)
#从list中随机获取5个元素,作为一个片断返回 

print slice

print list #原有序列并没有改变。

  上面这些方法是random模块中最常用的,在Python手册中,还介绍其他的方法。感兴趣的朋友可以通过查询Python手册了解更详细的信息。

Python中random模块生成随机数详解的更多相关文章

  1. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  2. Python 使用random模块生成随机数

    需要先导入 random  模块,然后通过 random 静态对象调用该一些方法. random() 函数中常见的方法如下: # coding: utf-8 # Team : Quality Mana ...

  3. python的random模块生成随机数

    python的random函数 random.random() 生成0-1之间的随机数 random.uniform(a,b)生成a,b之间的浮点数 random.randint(a,b)生成a,b之 ...

  4. python中os模块函数方法详解最全最新

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) os.chdir("dirname") 改 ...

  5. **Python中的深拷贝和浅拷贝详解

    Python中的深拷贝和浅拷贝详解   这篇文章主要介绍了Python中的深拷贝和浅拷贝详解,本文讲解了变量-对象-引用.可变对象-不可变对象.拷贝等内容.   要说清楚Python中的深浅拷贝,需要 ...

  6. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  7. Python中的变量和作用域详解

    Python中的变量和作用域详解 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部 ...

  8. python中的subprocess.Popen()使用详解---以及注意的问题(死锁)

    从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

  9. Python中%r和%s的详解及区别_python_脚本之家

    Python中%r和%s的详解及区别_python_脚本之家 https://www.jb51.net/article/108589.htm

随机推荐

  1. LightOJ - 1170 - Counting Perfect BST(卡特兰数)

    链接: https://vjudge.net/problem/LightOJ-1170 题意: BST is the acronym for Binary Search Tree. A BST is ...

  2. HDU - 3555 - Bomb(数位DP)

    链接: https://vjudge.net/problem/HDU-3555 题意: The counter-terrorists found a time bomb in the dust. Bu ...

  3. export的几种用法

    记录一下export的几种写法. 0.入口文件为index.js,引用add-content.js的内容 1.  export default 方式,直接导出变量 add-content.js的内容如 ...

  4. C# HashCode

    如果两个对象的HashCode相等,可以认为两者相等.类型和值都相等. xx.GetHashCode();

  5. 历史相关API

    一.history对象 ①history.back()移动到上一个访问页面,等同于浏览器的后退键. ②history.forward()动到下一个访问页面,等同于浏览器的前进键. ③history.g ...

  6. Codeforces Round #557 题解【更完了】

    Codeforces Round #557 题解 掉分快乐 CF1161A Hide and Seek Alice和Bob在玩捉♂迷♂藏,有\(n\)个格子,Bob会检查\(k\)次,第\(i\)次检 ...

  7. LOJ2434. 「ZJOI2018」历史 [LCT]

    LOJ 思路 第一眼看似乎没有什么思路,试着套个DP上去:设\(dp_x\)表示只考虑\(x\)子树,能得到的最大答案. 合并的时候发现只有\(x\)这个点有可能做出新的贡献,而做出新贡献的时候必然是 ...

  8. 网格布局 grid

    推荐阅读:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html 1. 启动网格布局 div { display: grid; ...

  9. 第12组 Alpha冲刺(3/6)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...

  10. spark-shell启动错误

    18/06/24 16:41:40 ERROR spark.SparkContext: Error initializing SparkContext.java.net.BindException: ...