math模块

math模块介绍

Python的math模块是一个标准库,提供了一些数学函数和常量,涵盖了数学中的许多常见问题。

math模块提供了许多对浮点数的数学运算函数。

math 模块下的函数,返回值均为浮点数,除非另有明确说明。

要使用 math 函数必须先导入:

import math

数学常量

math模块提供了以下数学常量:

  • math.e:自然常数e,约等于2.718
  • math.pi:圆周率π,约等于3.1416
  • math.tau:数学常数 τ = 6.283185...,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比
  • math.inf:正无穷大的浮点数,负无穷大,使用 -math.infmath.inf 相当于 float('inf') 的输出。
  • math.nan: 返回一个浮点值 nan(not a number,不是一个数字),这个值不是一个合法数字,相当于 float('nan') 的输出。
import math

print(math.e)   # 2.718281828459045
print(math.pi)  # 3.141592653589793
print(math.tau) # 6.283185307179586

数学函数

以下是math模块提供的一些数学函数:

  • fabs(x):返回参数x的绝对值。
  • ceil(x):向上取整,返回大于等于x的最小整数。
  • floor(x):向下取整,返回小于等于x的最大整数。
  • sqrt(x):返回参数x的平方根。
  • pow(x, y):返回x的y次方。
  • exp(x):返回e的x次方。
  • factorial(x):返回 x 的阶乘。
  • gcd(x,y):返回x,y的最大公约数。

fabs(x)-绝对值

Python math.fabs(x) 方法返回 x 的绝对值。

math.fabs() 函数类似于 abs() 函数,但是他有两点区别:

  • abs() 是内置函数。 fabs() 函数在 math 模块中定义。
  • 与 Python 内置的abs()不同,math.fabs() 始终将值转换为浮点值。
  • math.fabs() 函数只对浮点型跟整型数值有效。 abs() 还可以运用在复数中。

语法如下:

math.fabs(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示 x 的绝对值。

实例

# 导入 math 包
import math

# 输出绝对值
print(math.fabs(2.77))
print(math.fabs(8.32))
print(math.fabs(-99.29))
print(math.fabs(-100))

输出结果:

2.77
8.32
99.29
100.0

ceil(x)-向上取整

Python math.ceil(x) 方法将 x 向上舍入到最接近的整数,返回大于等于x的最小整数

语法如下:

math.ceil(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个整数,表示舍入的数字。

实例

# 导入 math 包
import math

# 输出向上舍入到最接近的整数
print(math.ceil(1.4))
print(math.ceil(5.3))
print(math.ceil(-5.3))
print(math.ceil(22.6))
print(math.ceil(10.0))

输出结果:

2
6
-5
23
10

floor(x)-向下取整

Python math.floor(x) 方法将 x 向下舍入到最接近的整数。

向下取整,返回小于等于x的最大整数。

语法如下

math.floor(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个整数 int,表示向下舍入的数字。

实例

# 导入 math 包
import math

# 输出向下舍入到最接近的整数
print(math.floor(0.6))
print(math.floor(1.4))
print(math.floor(5.3))
print(math.floor(-5.3))
print(math.floor(22.6))
print(math.floor(10.0))

输出结果:

0
1
5
-6
22
10

sqrt(x)-平方根

Python math.sqrt(x) 方法返回 x 的平方根。

数字必须大于等于 0。

语法如下:

math.sqrt(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果数字小于 0,则返回 ValueError。

返回值

返回一个浮点数,表示一个数的平方根。

实例

# 导入 math 包
import math

# 输出平方根
print (math.sqrt(9))
print (math.sqrt(25))
print (math.sqrt(16))

输出结果:

3.0
5.0
4.0

sqrt()返回正数x的根,功能等价于x**0.5,但不能对负数求平方根,不如幂运算符**0.5功能强大。

>>> math.sqrt(9)
3.0
>>> math.sqrt(-9)
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    math.sqrt(-9)
ValueError: math domain error
>>> (-9)**0.5
(1.8369701987210297e-16+3j)

pow(x, y)- x 的 y 次幂

Python math.pow(x, y) 方法返回返回 x 的 y 次幂( 次方 )。

如果 x 为负且 y 不是整数,则返回 ValueError。

该方法会将两个参数转换为浮点数。 math.pow(1.0,x) 或 math.pow(x,0.0),始终返回 1.0。

语法如下:

math.pow(x, y)

参数说明:

  • x -- 必需,一个代表基数的数字。
  • y -- 必需,一个代表指数的数字。

返回值

返回一个浮点数,表示 x 的 y 次幂。

实例

以下实例返回 9 的 3 次方:

# 导入 math 包
import math

# 输出 9 的 3 次方
print(math.pow(9, 3))

输出结果:

729.0

exp(x)-e的x次幂

Python math.exp(x) 方法返回 e 的 x 次幂(次方)E^x^,其中 e = 2.718281... 是自然对数的基数。

语法如下:

math.exp(x)

参数说明:

  • x -- 必需,数字,指定指数。如果 x 不是一个数字,返回 TypeError。

返回值

一个浮点值,表示 e 的 x 次幂。

实例

# 导入 math 包
import math

# 指定不同的指数
print(math.exp(65))
print(math.exp(-6.89))

输出结果:

1.6948892444103338e+28
0.0010179138409954387

factorial(x)-阶乘

Python math.factorial(x) 方法返回 x 的阶乘。

参数只能是正整数。

一个数字的阶乘是所有整数的乘积之和,例如,6 的阶乘是: 6 x 5 x 4 x 3 x 2 x 1 = 720

语法如下:

math.factorial(x)

参数说明:

  • x -- 必需,正整数。如果数字为负数或不是整数,则返回 ValueError。 如果值不是数字,则返回 TypeError。

返回值

返回一个正整数,表示正整数的阶乘。

实例

# 导入 math 包
import math

# 输出正整数的阶乘
print(math.factorial(9))
print(math.factorial(6))
print(math.factorial(12))

输出结果:

362880
720
479001600

gcd(x,y)-最大公约数。

Python math.gcd() 方法返回给定的整数参数的最大公约数。

gcd(0,0) 返回 0。

在 3.9 版更改: 添加了对任意数量的参数的支持,之前的版本只支持两个参数。

语法如下

math.gcd(*integers)

参数说明:

  • *integers -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个整数 int,表示两个或多个整数的最大公约数 (GCD)。

实例

# 导入 math 包
import math

# 输出最大公约数
print (math.gcd(3, 6))
print (math.gcd(6, 12))
print (math.gcd(12, 36))
print (math.gcd(-12, -36))
print (math.gcd(5, 12))
print (math.gcd(10, 0))
print (math.gcd(0, 34))
print (math.gcd(0, 0))

输出结果:

3
6
12
12
1
10
34
0

三角函数

以下是math模块提供的一些三角函数:

  • sin(x):返回参数x的正弦值,x为弧度。
  • cos(x):返回参数x的余弦值,x为弧度。
  • tan(x):返回参数x的正切值,x为弧度。
  • asin(x):返回参数x的反正弦值,返回值为弧度。
  • acos(x):返回参数x的反余弦值,返回值为弧度。
  • atan(x):返回参数x的反正切值,返回值为弧度。

sin(x)-正弦值

Python math.sin(x) 返回 x 弧度的正弦值。

要获取指定角度的正弦,必须首先使用 math.radians() 方法将其转换为弧度。

语法如下:

math.sin(x)

参数说明:

  • x -- 必需,数字。如果 x 不是数字,则返回 TypeError。

返回值

返回一个浮点数,表示 x 的正弦值,介于 -1 到 1 之间。

实例

# 导入 math 包
import math

# 输出正弦值
print (math.sin(0.00))
print (math.sin(-1.23))
print (math.sin(10))
print (math.sin(math.pi))
print (math.sin(math.pi/2))

输出结果:

0.0
-0.9424888019316975
-0.5440211108893699
1.2246467991473532e-16
1.0

要获取指定角度的正弦,必须首先使用 math.radians() 方法将其转换为弧度:

# 导入 math 包
import math

# 角度 30 先转换为弧度再计算正弦值
print(math.sin(math.radians(30)))

# 角度 90 先转换为弧度再计算正弦值
print(math.sin(math.radians(90)))

输出结果:

0.49999999999999994
1.0

cos(x)--余弦值

Python math.cos(x) 返回 x 弧度的余弦值。

语法如下:

math.cos(x)

参数说明:

  • x -- 必需,数字。如果 x 不是数字,则返回 TypeError。

返回值

返回一个浮点数,表示 x 的余弦值,介于 -1 到 1 之间。

实例

# 导入 math 包
import math

# 输出余弦值
print (math.cos(0.00))
print (math.cos(-1.23))
print (math.cos(10))
print (math.cos(3.14159265359))

输出结果:

1.0
0.3342377271245026
-0.8390715290764524
-1.0

tan(x)-正切值

Python math.tan(x) 返回 x 弧度的正切值。

语法如下:

math.tan(x)

参数说明:

  • x -- 必需,数字。如果 x 不是数字,则返回 TypeError。

返回值

返回一个浮点数,表示 x 的正切值。

实例

# 导入 math 包
import math

# 输出正切值
print (math.tan(90))
print (math.tan(-90))
print (math.tan(45))
print (math.tan(60))

输出结果:

-1.995200412208242
1.995200412208242
1.6197751905438615
0.3200403893795629

asin(x)-反正弦值

Python math.asin(x) 返回 x 的反正弦值,结果范围在 -pi/2 到 pi/2 之间。。

math.asin() 接收的参数为 -1 到 1。

语法如下

math.asin(x)

参数说明:

  • x -- 必需,一个数字, -1 到 1 之间。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示一个数字的反正弦值。

实例

# 导入 math 包
import math

# 输出反正弦值
print(math.asin(0.55))
print(math.asin(-0.55))
print(math.asin(0))
print(math.asin(1))
print(math.asin(-1))

输出结果:

0.5823642378687435
-0.5823642378687435
0.0
1.5707963267948966
-1.5707963267948966

acos(x)-反余弦值

Python math.acos(x) 返回 x 的反余弦,结果范围在 0 到 pi 之间。

math.acos() 接收的参数为 -1 到 1。

math.acos(-1) 返回 math.pi 常量。

语法如下

math.acos(x)

参数说明:

  • x -- 必需,一个数字, -1 到 1 之间。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示一个数字的反余弦。

实例

# 导入 math 包
import math

# 输出反余弦值
print(math.acos(0.55))
print(math.acos(-0.55))
print(math.acos(0))
print(math.acos(1))
print(math.acos(-1))

输出结果:

0.9884320889261531
2.15316056466364
1.5707963267948966
0.0
3.141592653589793

atan(x)-反正切值

Python math.atan(x) 返回 x 的反正切值,以弧度为单位,结果范围在 -pi/2 到 pi/2 之间。

语法如下

math.atan(x)

参数说明:

  • x -- 必需,个正数或负数。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示一个数字的反正切值,范围在 -pi/2 到 pi/2 之间。

实例

# 导入 math 包
import math

# 输出反正切值
print (math.atan(0.39))
print (math.atan(67))
print (math.atan(-21))

输出结果:

0.37185607384858127
1.5558720618048116
-1.5232132235179132

对数函数

以下是math模块提供的一些对数函数:

  • log(x[, base]):返回参数x的自然对数,如果指定了base,则返回以base为底的对数。
  • log10(x):返回参数x的以10为底的对数。
  • log2(x):返回参数x的以2为底的对数。

log(x[,b])

Python math.log(x) 方法使用一个参数,返回 x 的自然对数(底为 e )。

语法如下:

math.log(x[, base])

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
  • base -- 可选,底数,默认为 e。

返回值

返回一个整数浮点数 float,表示一个数字的自然对数。

实例

# 导入 math 包
import math

# 输出一个数字的自然对数
print(math.log(2.7183))
print(math.log(2))
print(math.log(1))
print(math.log(256,2))

输出结果:

1.0000066849139877
0.6931471805599453
0.0
8.0

log10(x)

Python math.log10(x) 方法返回 x 以 10 为底的对数。

语法如下

math.log10(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。

返回值

返回一个整数浮点数 float,表示一个数字以 10 为底的自然对数。

实例

以下实例返回一个数字以 10 为底的自然对数:

# 导入 math 包
import math

# 输出一个数字以 10 为底的自然对数
print(math.log10(2.7183))
print(math.log10(2))
print(math.log10(1))

输出结果:

0.43429738512450866
0.3010299956639812
0.0

log2(x)

Python math.log2(x) 方法返回 x 以 2 为底的对数。

语法如下

math.log2(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。

返回值

返回一个整数浮点数 float,表示一个数字以 2 为底的自然对数。

实例

以下实例返回一个数字以 2 为底的自然对数:

# 导入 math 包
import math

# 输出一个数字以 2 为底的自然对数
print(math.log2(2.7183))
print(math.log2(2))
print(math.log2(1))

输出结果:

1.4427046851812222
1.0
0.0

其他函数

degrees(x)-弧度转角度

Python math.degrees(x) 方法将角度 x 从弧度转换为度数。

PI (3.14..) 弧度等于 180 度,也就是说 1 弧度等于 57.2957795 度。

语法如下

math.degrees(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示角度。

实例

# 导入 math 包
import math

# 输出弧度转换为度数
print (math.degrees(8.90))
print (math.degrees(-20))
print (math.degrees(1))
print (math.degrees(90))

输出结果:

509.9324376664327
-1145.9155902616465
57.29577951308232
5156.620156177409

radians(x)-角度转弧度

Python math.radians(x) 方法将角度 x 从度数转换为弧度。

语法如下

math.radians(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。

返回值

返回一个浮点数,表示弧度值。

实例

# 导入 math 包
import math

# 输出度数转换为弧度
print(math.radians(180))
print(math.radians(100.03))
print(math.radians(-20))

输出结果:

3.141592653589793
1.7458528507699278
-0.3490658503988659

模拟考题

考题1 单选题

使用turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个外接圆,如图所示,应在横线处补充哪一个选项,不得修改其他代码?( )

import turtle
turtle.pensize(2)
turtle.color('#FF8EFF','#2F0000')
for i in range(4):
    turtle.fd(200)
    turtle.left(90)
turtle.left(-45)

turtle.circle(______*pow(2,0.5))

image.png  A. 100

B. 50

C. 200

D. -100

答案:A

解析:正方形边长是200,则该圆的半径是100,所以此处是100。

考题2 单选题

编写Python程序实现:输入圆的半径,输出圆的面积。

import math
r=float(input())    
________________
print(s)

下列语句不可以完善程序,实现相关功能的是?( )

A. s=math.pi*math.pow(r,2)

B. s=math.pi*r**2

C. s=math.pi*r*r

D. s=pi*r*r

答案:D

解析:math.pi:圆周率π,约等于3.1416

math.pow(x, y) 方法返回返回 x 的 y 次幂( 次方 )

考题3 单选题

下列哪个选项是Python math库的数字常量?( )

A. math.log

B. math.inf

C. math.rnd

D. math.exp

答案:B

解析:math.inf:正无穷大的浮点数,负无穷大,使用 -math.inf ,math.inf 相当于 float('inf') 的输出

math.tau:数学常数 τ = 6.283185...,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比

math.e:自然常数e,约等于2.718

math.pi:圆周率π,约等于3.1416

考题4 单选题

下列代码运行后的结果是?( )

import math

a=math.floor(10.2)
print(a)

A. 10.20

B. 10.0

C. 11

D. 10

答案:D

解析:python中math库应用。 math.floor是向下取整函数

Copyright © all right reserved,powered by Gitbook该文件修订时间: 2023-10-27 17:21:58