科学计数法
在Python中,可以使用e或E来表示科学记数法。例如,10的6次方可以表示为1e6或1E6。
# 以科学记数法输出10的6次方 num = 1e6 print(num) # 1000000.0 num2 = 1.234e-3 print(num2) # 0.001234
上面代码中,我们使用e来表示10的幂次,第一行代码输出1e6就是10的6次方,第二行代码输出1.234e-3,就是0.001234。
数学常量
常量 | 数学表示 | 描述 |
---|---|---|
math.pi | π | 数学常量 pi(圆周率,一般以π来表示) |
math.e | e | 数学常量 e,e即自然常数(自然常数)。 |
math.info | ∞ | 正无穷大,负无穷大为-math.inf |
math.nan | 非浮点数标记,NAN(Not a Number) |
常用简单数值函数
函数 | 返回值 ( 描述 ) |
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
math.fabs(x) | 以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0 |
math.ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
math.exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
math.expml(x) | 返回e的x次幂减1,e**x-1 |
math.fmod(x,y) | x%y,返回x与y的模 |
math.remainder(x,y) | 返回 x/y 的余数,math.remainder(9, 2)返回1 |
math.floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
math.modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
math.trunc(x) | 返回x的整数部分 |
sum([x,y...],start=0) | x+y+...+start,数值求和 |
math.fsum([x,u,...]) | x+y+...,浮点数精确求和 |
math.log(x[,base=e]) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
math.loglp(x) | ln(1+x),返回1+x的自然对数 |
math.log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
math.log2(x) | 返回以2为底的对数 |
max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
math.pow(x, y) | x**y 运算后的值。 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 其实准确的说是保留值将保留到离上一位更近的一端。 |
math.sqrt(x) | 返回数字x的平方根。 |
math.factorial(x) | x!,返回x的阶乘,如果x是负数或者小数,返回ValueError |
math.gcd(x,y) | 返回x、y的最大公约数 |
math.frepx(x) | 方法以 (m, i) 对的形式返回 x 的尾数和指数。 |
math.ldexp(m,i) | frepx()的反函数 |
math.copysign(x,y) | |x|*|y|/y,用数值y的正负号替换数值x的正负号 |
math.isclose(x,y) | 比较x、y的相似性 |
math.isfinite(x) | 当x为无穷大时,返回True,否则返回False |
math.isinf(x) | 当x为正数或负无穷大时,返回True,否则返回False |
math.isnan(x) | 当x是NaN,返回True,否则返回False |
常用随机数函数
函数 | 描述 |
random.choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
random.randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random.random() | 随机生成下一个实数,它在[0,1)范围内。 |
random.seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
random.shuffle(lst) | 将序列的所有元素随机排序 |
random.uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
random.randint(x,y) | 生成x至y之间的随机整数 |
random.getrandbits(k) | 生成k比特长的随机整数 |
random.sample(p,k) | 从p类型(列表等类型)中随机取出k个元素,以列表形式返回 |
三角函数
函数 | 描述 |
math.acos(x) | 返回x的反余弦弧度值。 |
math.asin(x) | 返回x的反正弦弧度值。 |
math.atan(x) | 返回x的反正切弧度值。 |
math.atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
math.cos(x) | 返回x的弧度的余弦值。 |
math.hypot(x, y) | 返回欧几里德范数 sqrt(x*x + y*y)。 |
math.sin(x) | 返回的x弧度的正弦值。 |
math.tan(x) | 返回x弧度的正切值。 |
math.degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
math.radians(x) | 将角度转换为弧度 |
math.sinh(x) | 返回x的双曲正弦函数值 |
math.cosh(x) | 返回x的双曲余弦函数值 |
math.tanh(x) | 返回x的双曲正切函数值 |
math.asinh(x) | 返回x的反双曲正弦函数值 |
math.acosh(x) | 返回x的反双曲余弦函数值 |
math.atanh(x) | 返回x的反双曲正切函数值 |
高等特殊函数
函数 | 描述 |
math.erf(x) | 高斯误差函数,应用于概率论、统计学等 |
math.erfc(x) | 余补高斯误差函数,math.erf(x)=1-math.erfc(x) |
math.gamma(x) | 伽马函数,也叫做欧拉第二积分函数 |
math.lgamma(x) | 伽马哈桑农户的自然对数 |
数学函数举例
divmod()
说明:把除数和余数运算结果结合起来,返回一个包含商和余数的元组
>>> print("9 除以 4:", divmod(9, 4))
9 除以 4: (2, 1)
>>> print("4 除以 9:", divmod(4, 9))
4 除以 9: (0, 4)
sum()
sum(iterable, start=0)
- iterable:可迭代对象,如列表、元组、集合、字典等。
- start:可选,指定初始值,如果不指定,默认为0。
说明:函数对列表元组和集合等序列进行求和计算。
>>> print(sum([1,2,3,4]))
10
>>> print(sum([1,2,3,4],15))
25
>>> print(sum((1,2,3,4,15)))
25
>>> print(sum((1,2,3),(4,15)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "int") to tuple
>>> print(sum((1,2,3,4),15))
25
isclose()
math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
参数说明:
- a -- 必需,数字。如果 a不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
- b -- 必需,数字。如果 b 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
- rel_tol -- 是相对容差,它是 a 和 b 之间允许的最大差值,相对于 a 或 b 的较大绝对值。例如,要设置5%的容差,请传递 rel_tol=0.05 。默认容差为 1e-09,确保两个值在大约9位十进制数字内相同。 rel_tol 必须大于零。
- abs_tol -- 是最小绝对容差,对于接近零的比较很有用。 abs_tol 必须至少为零。
返回一个布尔值,检查两个值是否彼此接近,如果值接近,则返回 True,否则返回 False。
>>> import math
>>> print(math.isclose(8.005, 8.450, abs_tol = 0.4))
False
>>> print(math.isclose(8.005, 8.450, abs_tol = 0.5))
True