python - 3/2 和 -3/2 有什么区别?

标签 python division

我是编程和 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/

相关文章:

python - 如何在新的 tkinter 窗口上显示词典

linux - float 除法 bash

python整数除法错误 - 以零为模 - 但除数!= 0

python - 仅位置参数与 python 3.7 的兼容性

python - 获取具有不同子列表数据类型的列表元素的交集

sql-server - 如何防止存储过程中出现被零除错误?

assembly - 我们何时以及为何签署扩展并使用带有 mul/div 的 cdq?

c - C语言中如何检查除法的结果是否为整数?

python - 如何获取网站的html文件

python - 编辑曲线和轴参数选项未在 matplotlib 中显示