Python math.atan2() 方法



Python 的 math.atan2() 方法返回 atan(y / x) 的值(以弧度表示)。换句话说,此方法将笛卡尔坐标对 (x, y) 转换为极坐标对 (r, θ) 并返回 θ 值。

此方法仅接受浮点值作为参数;如果传递给此方法的值不是浮点值,则会引发 TypeError。

注意 - 此函数无法直接访问,因此我们需要导入 math 模块,然后才能使用 math 静态对象调用此函数。

语法

以下是 Python math.atan2() 方法的语法:

math.atan2(y, x)

参数

  • x, y - 必须是浮点类型的数值。

返回值

此方法返回 atan(y / x) 的值(以弧度表示)。

示例

以下示例演示了 Python math.atan2() 方法的使用。在这里,我们创建了两个包含两个浮点值的 对象,并将它们作为参数传递给此方法。获得的返回值必须以弧度表示。

import math

# Create two objects of floating-point numbers
x = 0.6
y = 1.2

# Calculate the atan(y/x) value
theta = math.atan2(y, x)

# Print the theta value
print("The theta value is calculated as:", theta)

运行上述程序时,会产生以下结果:

The theta value is calculated as: 1.1071487177940904

示例

如果我们将负值作为参数传递给此方法,则将返回这些矩形坐标所包围的角度。

import math

# Create two objects of floating-point numbers
x = -1.6
y = -3.5

# Calculate the atan(y/x) value
theta = math.atan2(y, x)

# Print the theta value
print("The theta value is calculated as:", theta)

如果我们编译并运行

The theta value is calculated as: -1.999574354240913

示例

在下面的示例中,我们创建了两个列表对象 x、y。使用循环语句,我们试图从列表中找到对应 x 和 y 值的 θ 值。

import math

# Create two lists of floating-point numbers
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]

# Calculate the atan(y/x) value of all objects in the list
for n in range(0, len(x)):
   theta = math.atan2(y[n], x[n])
   print("The theta value of", y[n], "and", x[n], "is calculated as:", theta)

编译并运行上面的程序后,输出显示为:

The theta value of 5 and 1 is calculated as: 1.373400766945016
The theta value of 6 and 2 is calculated as: 1.2490457723982544
The theta value of 7 and 3 is calculated as: 1.1659045405098132
The theta value of 8 and 4 is calculated as: 1.1071487177940904

示例

如果直接将上面的列表作为参数传递给该方法,则会引发 TypeError。因此,我们使用循环语句访问其中的浮点对象。

import math

# Create two lists of floating-point numbers
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]

# Calculate the atan(y/x) value of all objects in the list
theta = math.atan2(y, x)
print("The theta value is calculated as:", theta)

如果我们编译并运行给定的程序,则会引发如下 TypeError:

Traceback (most recent call last):
  File "main.py", line 8, in <module>
theta = math.atan2(y, x)
TypeError: must be real number, not list
python_maths.htm
广告