Note: The math
module consists mostly of thin wrappers around the platform C math
library functions. Behavior in exceptional cases is loosely specified by the C standards,and Python inherits much of its math
-function error-reporting behavior from the platform C implementation. As a result,the specific exceptions raised in error cases (and even whether some arguments are considered to be exceptional at all) are not defined in any useful cross-platform or cross-release way. For example,whether math.log(0)
returns -Inf
or raises ValueError
or OverflowError
isn’t defined,and in cases where math.log(0)
raises OverflowError
,math.log(0L)
may raise ValueError
instead.
All functions return a quiet NaN if at least one of the args is NaN
. Signaling NaN
s raise an exception. The exception type still depends on the platform and libm implementation. It’s usually ValueError
for EDOM
and OverflowError
for errno ERANGE
.
Changed in version 2.6: In earlier versions of Python the outcome of an operation with NaN
as input depended on platform and libm
implementation.