Python-基础-数学模块

数学模块

Python 中数学相关模块,如下所示:

相对比较常用的模块:math、decimal 和 random。

模块描述
math提供了对 C 标准定义的数学函数的访问(不适用于复数)
decimal为快速正确舍入的十进制浮点运算提供支持
random实现各种分布的伪随机数生成器
cmath提供了一些关于复数的数学函数
fractions为分数运算提供支持
statistics提供了用于计算数字数据的数理统计量的函数

math模块

首先要先引入数学模块 math。如下所示:

import math

引入之后就可以使用了,以 math 模块中求平方根函数 sqrt(x) 为例。使用方式如下所示:

import math
math.sqrt(1024)

Python 提供了许多用于数值计算的内置函数,以下是一些常用的:

内置函数描述用例
abs(x)返回 x 的绝对值abs(-3) = 3
pow(x, y[, z])返回 xy 次幂,如果 z 给出,幂结果对 z 取余pow(2,3,3) = 2
divmod(x, y)返回两个数的商和余数divmod(10, 3) = (3, 1)
max(x1, x2,x3, …)返回最大值max(1, 2, 3, 4) = 4
min(x1, x2,x3, …)返回最小值min(1, 2, 3, 4) = 1
round(x[, ndigits])x 进行四舍五入,ndigits(可选)表示小数点后保留的位数round(3.141, 2) = 3.14
sum(iterable[, start])iterable 的所有项求和,如果提供 start,则从 start 开始加sum([1, 2, 3, 4, 5]) = 15

math 模块中常用的函数。如下表所示:

math模块函数描述用例
math.fabs(x)返回 x 的绝对值(浮点数)math.fabs(1) = 1.0
math.ceil(x)返回 x 的上入整数math.ceil(1.1) = 2
math.floor(x)返回 x 的下舍整数math.floor(1.1) = 1
math.fmod(x, y)返回 x/y 的余数math.fmod(3, 2) = 1.0
math.factorial(x)返回 x 的阶乘,如果 x 不是整数或为负数时则将引发 ValueErrormath.factorial(3) = 5
math.pow(x, y)返回 x 的 y 次幂,值为浮点数,如:math.pow(2,3) = 8.0
math.fsum(iterable)返回迭代器中所有元素的和,值为浮点数math.fsum((1, 2, 3)) = 6
math.gcd(x, y)返回整数 x 和 y 的最大公约数math.gcd(4,6) = 2
math.sqrt(x)返回 x 的平方根,值为浮点数math.sqrt(9) = 3.0
math.trunc(x)返回 x 的整数部分math.trunc(1.256) = 1
math.exp(x)返回 e 的 x 次幂math.exp(2) = 7.38…
math.log(x[, base])返回 x 的对数,底数默认为 emath.log(8,2) = 3.0
常量math.e = 2.71… math.pi = 3.14…
正余弦等

decimal 模块

decimal 模块为正确舍入十进制浮点运算提供了支持,相比内置的浮点类型 float,它能更加精确的控制精度,能够为精度要求较高的金融等领域提供支持。

基本运算

import decimal

d1 = decimal.Decimal(1.1)
d2 = decimal.Decimal(9.9)
print(d1 + d2)
print(d1 - d2)
print(d1 * d2)
print(d1 / d2)

执行结果:

11.00000000000000044408920985
-8.800000000000000266453525910
10.89000000000000127009514017
0.1111111111111111160952773272

上面结果是用了默认精度,我们重新设置下精度再来看一下:

import decimal

decimal.getcontext().prec = 2 # 设置这个上下文的精度为 2
d1 = decimal.Decimal(1.1)
d2 = decimal.Decimal(9.9)
print(d1 + d2)
print(d1 - d2)
print(d1 * d2)
print(d1 / d2)

执行结果:

11
-8.8
11
0.11

random 模块

random 模块可以生成随机数,我们来看一下其常用函数。

random模块函数描述用例
random.random()返回 [0.0, 1.0) 范围内的随机浮点数random.random() = 0.374…
random.uniform(a, b)返回一个在 [a, b) 或 (b, a] 范围内的随机浮点数random.uniform(1, 10) = 2.597…
random.randint(a, b)返回一个在 [a, b] 范围内的随机整数random.randint(1, 10) = 7
random.choice(seq)从非空序列 seq 返回一个随机元素random.choice(‘abcd’) = b
random.shuffle(seq)将序列 seq 中的元素随机打乱,返回 None
random.sample(population, k)从序列或集合中随机选k个元素组成列表并返回
用于无重复的随机抽样
random.sample(‘abb’, 3) = [‘b’,‘a’,‘b’]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值