Python 求立方根
Muhammad Waiz Khan
2023年10月10日
本教程将讲解在 Python 中获取一个整数或浮点数的立方根的不同方法。要想在 Python 中得到一个数的立方根,我们首先要知道如何得到一个数的指数,以及在 Python 中用什么运算符来得到一个数的指数。我们还将看到在计算其立方根时如何处理负数,以及在 Python 中用什么运算符或方法来获取一个数的立方根。
Python 使用指数符号**
求立方根
我们可以在 Python 中使用**
符号来计算数字的指数,它也被称为幂运算符。为了计算立方根,我们可以设置幂等于 1/3
。
我们应该记住,由于某些原因,负数的立方根不能用这种方法正确计算。例如,整数 -27
的立方根应该是 -3
,但 Python 却返回 1.5000000000000004+2.598076211353316j
。这个问题可以通过在计算其立方根之前忽略整数的负号来轻松处理。
下面的代码示例演示了如何在 Python 中计算正数和负数的立方根。
def get_cuberoot(x):
if x < 0:
x = abs(x)
cube_root = x ** (1 / 3) * (-1)
else:
cube_root = x ** (1 / 3)
return cube_root
print(get_cuberoot(64))
print(get_cuberoot(-64))
print(round(get_cuberoot(-64)))
输出:
3.9999999999999996
-3.9999999999999996
-4
注意
正如我们在上面的例子中所看到的,我们可能需要四舍五入才能得到立方根的精确值。
Python 中使用 pow()
函数求立方根
pow()
函数将一个数字(可以是整数或浮点数)作为第一个参数,将该数字的指数或幂作为第二个参数,并返回所提供数字的幂。
我们可以传递 1/3
作为第二个参数,计算出所需数字的立方根。pow()
函数也会返回负数的立方根的错误答案,因此负数应该单独处理。
下面的代码示例演示了如何使用 pow
方法计算一个数字的立方根。
def get_cuberoot(x):
if x < 0:
x = abs(x)
cube_root = pow(x, 1 / 3) * (-1)
else:
cube_root = pow(x, 1 / 3)
return cube_root
print(get_cuberoot(64))
print(get_cuberoot(-64))
print(round(get_cuberoot(-64)))
输出:
3.9999999999999996
-3.9999999999999996
-4
Python 使用 NumPy 库的 cbrt()
函数获取立方根
NumPy 库中的 cbrt()
函数是计算一个数字的立方根最简单的方法。它不会在负数输入时遇到麻烦,而且与上面讨论的方法不同,它返回的是准确的数字,比如输入 64 的话会得到 4。
这个方法的问题是,它不是 Python 的内置函数,需要安装 NumPy 库才能使用 cbrt()
函数。
下面的示例代码演示了如何在 Python 中使用 cbrt
函数来获取一个数字的立方根。
import numpy as np
print(np.cbrt(64))
print(np.cbrt(-64))
print(np.cbrt(9.4))
输出:
4.0
-4.0
2.11045429449015