多亏了@MaartenFabré,我没有注意到细节:math.remainder() is the difference x - n*y, where n is the closest integer to the exact value of the quotient x / y
我构建了Python 3.7:Python 3.7.0a0 (heads/master:f34c685020, May 8 2017, 15:35:30)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
不同之处在于:
零作为除数:
^{pr2}$
基本数,其中math.remainder(x, y) < x % y>>> math.remainder(5, 3)
-1.0
>>> 5 % 3
2
复数:>>> math.remainder(3j + 2, 4)
Traceback (most recent call last):
File "", line 1, in
TypeError: can't convert complex to float
>>> (3j + 2) % 4
Traceback (most recent call last):
File "", line 1, in
TypeError: can't mod complex numbers.
无穷大(math.inf)>>> math.remainder(3, math.inf)
3.0
>>> 3 % math.inf
3.0
>>> math.remainder(math.inf, 3)
Traceback (most recent call last):
File "", line 1, in
ValueError: math domain error
>>> math.inf % 3
nan