网站首页 > 技术文章 正文
math
在 Python 中,可以使用内置的 math 库来执行各种数学运算和处理。math 库它包含了一系列用于处理整数、浮点数、平方根、指数、对数、三角函数等的函数。对应的还有cmath 库,它专门用于处理复数(complex numbers),提供了一系列用于处理复数的数学函数,包括求幂、求根、求对数、正弦、余弦等。下面主要记录math库的一些用法。
首先需要引用库
# 引用math库
import math
支持的属性
使用dir()
常量
使用 getattr() 函数来获取每个属性的类型。
isinstance(object, classinfo)可以用来检查一个对象是否是一个类的实例。或者是否继承自一个特定的类。
object: 要检查的对象。
classinfo: 一个类名、类的类型对象或者包含类的元组。如果 classinfo 是一个元组,object 将被检查是否是元组中任何一个类的实例。
如果 object 是 classinfo 的实例,或者 classinfo 中任何类或元组的实例,isinstance() 返回 True。否则,返回 False。
# 获取 math 模块的所有属性
attributes = dir(math)
# 打印常量
for attr in attributes:
if isinstance(getattr(math, attr), (float, int)):
print(f"Constant: {attr} = {getattr(math, attr)}")
基本运算
#加法
math.fsum([1, 2, 3, 4, 5])
# 减法
7 - 3
# 直接乘法
3 * 4
# 阶乘
math.prod([1, 2, 3, 4, 5])
# 直接除法
10 / 2
# 取余数
10 % 3
幂运算和开方
# 幂运算 2 的 3 次方,结果为 8
math.pow(2, 3)
# 开方 16 的平方根,结果为 4.0
math.sqrt(16)
三角函数
注意:math 模块中的三角函数使用弧度制
angle_in_radians = math.pi / 2 # 90 度,转换为弧度
# sin(90°),结果为 1.0
math.sin(angle_in_radians)
# cos(90°),结果为 0.0
math.cos(angle_in_radians)
# tan(90°),结果为无穷大(因为 90° 是正切的奇点)
math.tan(angle_in_radians)
其他数学运算
# 最大公约数
print(math.gcd(66540,15680,360))
# 返回可迭代对象中的值的精确浮点总计值。
print(math.fsum([1,2.3,3.4]))
# 以 (m, e) 对的形式返回 x 的尾数和指数
print(math.frexp(10)) # x == m * 2**e x=10 (m, e)=(0.625, 4)
# 指数函数 (exp): 计算 e 的指数。
print(math.exp(1))
# 返回不重复且无顺序地从 n 项中选择 k 项的方式总数。
# 当 k <= n 时取值为 n! / (k! * (n - k)!);当 k > n 时取值为零。
print(math.comb(4, 2)) # n=3 k=2
# 返回 x 的向上取整
print(math.ceil(2.5))
# 返回一个基于 x 的绝对值和 y 的符号的浮点数。
print(math.copysign(-3, -1)) #x=-3 y=-1
可参考链接:
https://docs.python.org/zh-cn/3/library/cmath.html#module-cmath
https://docs.python.org/zh-cn/3/library/math.html#math.copysign
猜你喜欢
- 2024-11-09 极客算法训练笔记(十),十大经典排序之计数排序、基数排序
- 2024-11-09 Axure RP 9 学习笔记 - 常用数学函数
- 2024-11-09 判断坐标点是否在高德地图围栏内的算法?
- 2024-11-09 Quick Pow: 如何快速求幂 快速幂算法
- 2024-11-09 十六、Java运算符-优先级与表达式
- 2024-11-09 抖音B站…推荐机制的原型,威尔逊得分排序算法
- 2024-11-09 浅谈移动设备交互体验之惯性滚动 惯性移轴定理
- 2024-11-09 JS中常见的Math对象 javascript中math
- 2024-11-09 力扣73——矩阵置零 矩阵置0
- 2024-11-09 基数排序的1个小技巧,2种排序方式,3种排序算法
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-