Python代数分数

Python代数分数,python,algebra,fractions,Python,Algebra,Fractions,我不想承认这一点,但这一行代码给我带来了一些麻烦 print 15 + (-1*(((yearnum + yearnum / 4 - yearnum / 100 + yearnum / 400) + 11) % 7)) % 7 为什么这不等于 print 15 + (-1*(((497 * yearnum / 400) + 11) % 7)) % 7 也许我已经完全忘记了分数是怎么工作的了?(eargum+eargeum/4-eargeum/100+eargeum/400)不等于(497*e

我不想承认这一点,但这一行代码给我带来了一些麻烦

print 15 + (-1*(((yearnum + yearnum / 4 - yearnum / 100 + yearnum / 400) + 11) % 7)) % 7
为什么这不等于

print 15 + (-1*(((497 * yearnum / 400) + 11) % 7)) % 7

也许我已经完全忘记了分数是怎么工作的了?

(eargum+eargeum/4-eargeum/100+eargeum/400)
不等于
(497*eargeum/400)+11)%7)
是整数除法的结果(Python是整数除法的结果).

您是否可以添加有关如何进行错误简化的步骤?这可能是操作顺序,或者是计算错误的分数。看到这些步骤,从一开始就发现比简化要容易得多(阅读:I'm lazy:p)。
eargum(1+1/4-1/100+1/400)
正确地简化为数学方面的
eargum(497/400)
,我认为除法运算符的功能受到了激烈的争论。为了向后兼容,所有2.x python都使用
/
进行整数除法,但您可以使用来告诉它们不要这样做。如果需要整数除法,最好显式地使用
/
,因为这总是做预期的事情。你完全正确。谢谢你指出这一点。有了这些,我今天就结束了。你可以通过在每个数字后面加上小数点来避免这个问题,从而迫使python使用浮点数而不是整数。1/4=0,但1/4.=0.25