我是编程和 Python 的初学者。我正在做一些简单的数学运算。所以我们知道,Python 解释器中的 3/2
给出 1
。但是 -3/2
给出 -2
。你能指出这里的区别吗?
最佳答案
在 Python 2 中,/
执行整数除法。这意味着如果结果不是整数,则向下舍入为下一个整数值。当值为负数时,这自然会舍入到更大的负数。
直观上,整数除法的结果就是mathematical floor float 除法的结果。因此,整数除法通常也称为 floor division。 .
floor(1.5) # Returns 1.0
floor(-1.5) # Returns -2.0
可以通过将 from __future__ import division
放在模块的顶部来改变 Python 2 中的这种行为。此导入将使 /
运算符仅指示真正的除法(浮点除法),并使用 //
运算符启用显式底除法(整数除法)。这些约定是 Python 3 中的标准。
from __future__ import division
print(3/2) # 1.5
print(3//2) # 1
正如@Dunes 在评论中指出的那样,值得注意的是 -
的优先级高于 /
,因此 -3/2
相当于 (-3)/2
而不是 -(3/2)
。如果首先应用除法,结果确实是 -1
。
关于python - 3/2 和 -3/2 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740846/