Python-基础-数学模块

文章目录

    • 数学模块
      • math模块
      • decimal 模块
      • random 模块

数学模块

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 不是整数或为负数时则将引发 ValueError math.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 的对数,底数默认为 e math.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’]

你可能感兴趣的:(后端,python,开发语言)