在python中计算对数

Nas*_*ser 25 python

我想知道为什么log base 10 (1.5)python = 0.405465108108 的结果,而真正的答案= 0.176091259.

这是我写的代码:

import math
print math.log(1.5)
Run Code Online (Sandbox Code Playgroud)

有人能说出如何解决这个问题吗?

Ign*_*ams 39

文档:

使用一个参数,返回x的自然对数(到基数e).

使用两个参数,将x的对数返回给定的基数,计算方式为log(x)/log(base).

但是日志10可用math.log10(),如果可能的话,它不会使用日志分区.


utk*_*sal 12

math.log10(1.5)
Run Code Online (Sandbox Code Playgroud)

使用数学模块中的log10函数.


Alt*_*yyr 9

如果您使用没有基数的日志,则使用e.

从评论

将x的对数返回给定的基数.
如果未指定基数,则返回x的自然对数(基数e).

因此你必须使用:

import math
print( math.log(1.5, 10))
Run Code Online (Sandbox Code Playgroud)

  • `math.log(x, n)` 在你有自定义基数时很有用,但如果你想要以 2 或 10 为底数的对数,请使用 `math.log2` 或 `math.log10`。 (2认同)

小智 7

math.log功能是基础e,即自然对数.如果你想基地10使用math.log10.