• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中Random和Math模块学习笔记

Python中Random和Math模块学习笔记

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了Python中Random和Math模块学习笔记等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

由于最近经常使用到Python中random,math和time``datetime模块, 所以决定花时间系统的学习一下

1. math模块

math中的函数不可以用于太过复杂的数的运算, 如果需要复杂数的运行最好使用cmath模块中同名函数, 如果想要更加高级的数学功能,可以考虑选择标准库之外的numpy和scipy模块,它们不但支持数组和矩阵运算,还有丰富的数学和物理方程可供使用

1.1. 数学常量

math.pi 这个数学常量等于 3.141592...
math.e 这个数学常量 e = 2.718281...,

1.2. 常用简单函数

math.ceil(x) : 对x向上取整,返回最小整数值大于或者等于x
# -*- coding:utf-8 -*-
import math  #仅在第一次声明, 以下都将省略
print math.ceil(math.pi)  #math.pi是圆周率pi, 类似于C/C++中的宏
//输出4
</div>

math.floor(x) : 对x向下取整, 返回整数值小于或者等于x
>>> import math
>>> math.floor(math.pi)
3.0
</div>
math.pow(x,y) : 指数运算,得到x的y次方
>>> math.pow(2, 3)
8.0
</div>
math.log(x[, base]) : 对数运算,默认基底为e的对数运算。使用base参数时,改变对数的基底, 变为以base为底的对数运算
>>> math.log(10)
2.302585092994046
>>> math.log(8, 2)   #log(x)/log(base).
3.0
</div>
math.sqrt(x) 平方根计算
>>> math.sqrt(4)
2.0
</div>

math.fabs(x) 取绝对值
math.factorial(x) 求阶乘, 即x!
math.exp(x) 求e的x次方
1.3. 三角函数
以下函数都接收一个弧度(radian)为单位的x作为参数
math.acos(x) #求arccos(x)
math.asin(x) #求arcsin(x)
math.atan(x) #求arctan(x)
math.cos(x)  #求cos(x)
math.sin(x)  #求sin(x)
math.tan(x)  #求tan(x)
</div>

math.degrees(x) 角度制转化为弧度制
math.radians(x) 弧度制转化为角度制
>>> math.degrees(math.pi / 2)
90.0
</div>

1.5. 双曲函数和特殊函数

math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)
还有些函数基本没用过

2. random模块

random模块的作用是产生随机数, 这个模块实现了伪随机数产生器

1.1. 常用函数

random.seed([x]) 用户初始化一个随机数种子, 可选参数可以是任何hashtable对象,默认使用系统时间
random.randint(a, b) 返回一个a到b之间的整数

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.randrange(start, stop, step)等价于random.choice(range(start, stop, step))
>>> random.randrange(10, 100, 2)
90
</div>

1.2. 随机挑选和排序
random.choice(sequence) : 从序列中获取一个随机元素. 参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence
>>> random.choice(range(10))
1
>>> random.choice((1, 2, 3, 4))
3
</div>
random.sample(sequence, k) # 从指定序列中随机获取指定长度k的片断。sample函数不会修改原有序列
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> new_lst = random.sample(lst, 6)
>>> print new_lst
[8, 9, 2, 1, 5, 4]
>>> print lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
</div>
random.shuffle(x[, random]),用于将一个列表中的元素打乱, 不会生成新的列表
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> random.shuffle(lst)
>>> print lst
[10, 5, 2, 7, 3, 9, 4, 8, 6, 1]
</div>

1.3. 随机生成实数

生成的实数符合均匀分布(uniform distribution)

random.random() 随机生成下一个实数,它在[0,1)范围内。
random.uniform(a,b) 随机生成下一个实数,它在[a,b]范围内。


>>> random.random()
0.019433835195078797
>>> random.uniform(3, 8)
6.830376841208885
</div>

random.gauss(mu,sigma) 随机生成符合高斯分布的随机数,mu,sigma为高斯分布的两个参数。
random.expovariate(lambd) 随机生成符合指数分布的随机数,lambd为指数分布的参数。

其余是一些目前没用过的函数, 以后用到了再补充

3. 参考链接

random官网文档 
math官方文档

</div>

您可能想查找下面的文章:

相关文章

  • Python获取文件所在目录和文件名的方法
  • python实现颜色rgb和hex相互转换的函数
  • python中MySQLdb模块用法实例
  • python 网络编程常用代码段
  • Python的requests网络编程包使用教程
  • 跟老齐学Python之Import 模块
  • Python运用于数据分析的简单教程
  • Python实现将DOC文档转换为PDF的方法
  • python中随机函数random用法实例
  • python计算一个序列的平均值的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python+django快速实现文件上传
    • Django中对数据查询结果进行排序的方法
    • python使用rsa加密算法模块模拟新浪微博登录
    • 解决python3 urllib中urlopen报错的问题
    • 使用Python脚本将文字转换为图片的实例分享
    • python 循环遍历字典元素的简单方法
    • Python数据类型详解(四)字典:dict
    • 简单介绍Python中的JSON模块
    • Python简单进程锁代码实例
    • Python脚本实现自动发带图的微博

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有