Python与Java中的模数实现之间的差异

Cer*_*rin 14 python java modulo

我注意到Python和Java中模数运算符的不同实现.

例如,在Python中:

>>> print -300 % 800
>>> 500
Run Code Online (Sandbox Code Playgroud)

在Java中:

System.out.println(-300 % 800);
-300
Run Code Online (Sandbox Code Playgroud)

这让我措手不及,因为我认为像模数一样基本的东西被普遍解释为同样的方式.我喜欢Python的解释(我认为它是从C借用的),尽管我看到了Java实现背后的逻辑.

你通常更喜欢哪一个?有不同解释的具体原因吗?我无意开始语言大战,只是好奇.

Ale*_*lli 6

我更喜欢C的解释(也用于Python),其中%确实是模数运算符.维基百科页面中的良好讨论及其中的链接(包括一些关于为什么采用股息的标志可能会导致一个愚蠢的错误,除非一个人小心;-).

  • C 的行为类似于 Java,而不是 Python。 (2认同)