Python math.log() 方法



Python math.log() 方法用于计算正数值的自然对数(以 e 为底)。

对数的一般和简单定义是指数的倒数。这意味着,对数的结果是对数底数将提高到的幂。因此,此方法的结果始终是浮点值。

底数 'e' 的对数可以表示如下:

logba = p

哪里

  • A:任意数字
  • b:对数的底数
  • p:基数升高到的功率
注意 − 这个函数不能直接访问,所以我们需要导入 math 模块,然后我们需要使用 math 静态对象调用这个函数。

语法

以下是 Python math.log() 方法的语法 -


 math.log( x )

参数

  • x − 这必须是一个正数值。

返回值

此方法返回 x 的自然对数,对于 x > 0。

以下示例显示了 Python math.log() 方法的用法。我们在这里将正值作为参数传递给此方法,因此结果也将是一个正浮点值。


import math # This will import the math module

# Create a numeric object
x = 36.789

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

当我们运行上述程序时,它会产生以下结果——

The logarithm of x is: 3.6051988874479988

但是,如果我们将负值作为参数传递给此方法,则会引发 ValueError,因为自然对数的域仅为正实数。


import math # This will import the math module

# Create a numeric object
x = -76.43

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

如果我们编译并运行上面的程序,输出显示如下 -

Traceback (most recent call last):
File "main.py", line 7, in
ln = math.log(x)
ValueError: math domain error

该方法也不接受数值以外的参数。

在下面的示例中,让我们创建一个包含数值的列表,并将其作为参数传递给此方法。当 list 是 iterable 时,预计会引发 ValueError。


import math # This will import the math module

# Create a list object
x = [12, 45.68, 112, 66.33]

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

如果我们执行上面的程序,则会引发 ValueError ,如下所示 -

Traceback (most recent call last):
File "main.py", line 7, in
ln = math.log(x)
TypeError: must be real number, not list

但是,我们可以使用 loop 语句来遍历上面示例中给出的列表,并找到其中包含的数值的自然对数。


import math # This will import the math module

# Create a list object
x = [12, 45.68, 112, 66.33]

# Using a for loop, iterate through the list
for n in range(0, len(x)):
	 	# Calculate the natural logarithm of x
	 	ln = math.log(x[n])
	 	# Display the log value
	 	print("The logarithm of x[",n,"] is:", ln)

在编译和执行上述程序时,结果如下 -

The logarithm of x[ 0 ] is: 2.4849066497880004
The logarithm of x[ 1 ] is: 3.821660565347755
The logarithm of x[ 2 ] is: 4.718498871295094
The logarithm of x[ 3 ] is: 4.194642283537465

这个 log() 方法的工作方式与 exp() 方法完全相反。这意味着,log() 方法的参数是 exp() 方法的返回值。

在这个例子中,我们正在创建一个对象 'x' 并将其作为参数传递给 exp() 方法。从此方法获取的返回值存储在另一个变量 'var' 中。现在,如果存储在 'var' 中的值作为参数传递给 log() 方法,则返回值应为存储在 'x' 中的值。


import math # This will import the math module

# Create a list object
x = 12.34

# Pass x as an argument to the exp() method
var = math.exp(x)

print("The exponent value of x is:", var)

# Calculate the natural logarithm of x
ln = math.log(var)

# Display the log value
print("The logarithm of x is:", ln)

上述程序的输出显示如下 -

The exponent value of x is: 228661.9520568098
The logarithm of x is: 12.34