Python使用random模块生成随机数操作实例详解


Posted in Python onSeptember 17, 2019

本文实例讲述了Python使用random模块生成随机数操作。分享给大家供大家参考,具体如下:

今天在用Python编写一个小程序时,要用到随机数,于是就在网上查了一下关于Python生成各种随机数的方法,现将其总结如下:

此处,利用Python中的random模块生成随机数。因此首先必须导入该模块:import random

一. 随机产生一个元素

import random
#生成一个0到1的随机浮点数: 0 <= n < 1.0
print(random.random())
>>> 0.8296185863491462

#生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。
#如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
#函数原型为:random.uniform(a, b)
print(random.uniform(1, 10))
>>> 8.257312492950838

#生成一个指定范围内的整数。其中参数a是下限,参数b是上限,
#生成的随机数n: a <= n <= b,函数原型为:random.randint(a, b)
#注意:此处要求 a<=b
print(random.randint(1, 10))
>>> 3

#从指定范围内,按指定基数递增的集合中获取一个随机数
#函数原型为:random.randrange(start, stop, step)
#如产生一个0-10的随机数,其步长为2,即[0,2,4,6,8],然后在随机取出一个随机数
print(random.randrange(0, 10, 2))
>>> 2

#从序列中获取一个随机元素。 函数原型为:random.choice(sequence)
#注意:sequence在python不是一种特定的类型,而是泛指一系列的类型;
#注意:list, tuple, 字符串都属于sequence。
print(random.choice( ['apple', 'pear', 'peach', 'orange', 'lemon'] ))
print(random.choice( ('1', '2', '3', '4', '5') ))
print(random.choice( [1, 2, 3, 4, 5] ))
>>> orange
>>> 2
>>> 2

#用于将一个列表中的元素打乱。 函数原型为:random.shuffle(x[, random])
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print(p)
>>> ['Python', 'is', 'simple', 'powerful', 'and so on...']

#从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
#如果k大于sequence元素个数的话会报错。 函数原型为:random.sample(sequence, k)
list = [1,2,3,4,5,6,7,8,9]
print(random.sample(list, 2))
print(random.sample(list, 5))
>>> [5, 3]
>>> [9, 5, 4, 7, 3]

二.产生一个随机数组

import numpy as np
#例如产生一个随机数组array
#方法一:
a = np.array([2,1,4,5,3,9,6,7,8,0])
print(a)
>>> array([2,1,4,5,3,9,6,7,8,0])

#产生一个(0,1)之间的10维的随机数组
#方法二;
b = np.random.rand(10)
print(b)
>>> array([ 0.43634533, 0.00256198, 0.9252553 , 0.46312913, 0.18253324,
      0.70458872, 0.79719794, 0.18972441, 0.5304701 , 0.11495708])

#产生一个(0,1)之间的10维的随机数组
#方法三;
c = np.random.random(10)
print(c)
>>> array([ 0.62725822, 0.69752737, 0.67910128, 0.32876791, 0.05591991,
      0.71435415, 0.62612756, 0.10492805, 0.45868039, 0.66527572])

#产生一个(0,1)之间的 3*4 的数组矩阵
#方法三;
d = np.random.random(size = (3,4))
print(d)
>>> array([[ 0.81287511, 0.07447028, 0.83052561, 0.69899251],
      [ 0.30087294, 0.24102044, 0.2261788 , 0.7931203 ],
      [ 0.10688122, 0.93165383, 0.02486699, 0.66883373]])

三.随机产生一个list或tuple

import random
#例如随机产生一个指定范围的整数list或tuple
#方法一:
a = [random.randint(0,5) for i in range(20)]
print(a)

#方法二;
for _ in range(10):
  b = random.randint(0,5)
  print(b)

结果为:

[5, 2, 0, 1, 3, 2, 4, 1, 2, 3, 5, 1, 1, 3, 1, 3, 1, 1, 3, 0]
4
2
1
1
3
0
5
4
4
5

Python 相关文章推荐
Python迭代用法实例教程
Sep 08 Python
Python监控主机是否存活并以邮件报警
Sep 22 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
使用tensorflow 实现反向传播求导
May 26 Python
python同时替换多个字符串方法示例
Sep 17 #Python
python 函数的缺省参数使用注意事项分析
Sep 17 #Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 #Python
Python 实现大整数乘法算法的示例代码
Sep 17 #Python
Python对接 xray 和微信实现自动告警
Sep 17 #Python
Python计算两个矩形重合面积代码实例
Sep 16 #Python
详解Python3 pickle模块用法
Sep 16 #Python
You might like
php中++i 与 i++ 的区别
2012/08/08 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
Js切换功能的简单方法
2010/11/23 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
django框架两个使用模板实例
2019/12/11 Python
Python字典底层实现原理详解
2019/12/18 Python
Python自动创建Excel并获取内容
2020/09/16 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
大学生应聘自荐信
2013/10/11 职场文书
化工专业个人的求职信范文
2013/11/28 职场文书
迎新晚会邀请函
2014/02/01 职场文书
《钱学森》听课反思
2014/03/01 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
解除劳动合同证明书
2014/09/26 职场文书
团代会闭幕词
2015/01/28 职场文书
小程序实现侧滑删除功能
2022/06/25 Javascript