我正在阅读用 Python 编写的库 'scikits-image' 的源代码,我找到了下一行代码:
n_cellsx = int(np.floor(sx // cx))
我不知道他们为什么要加入 NumPy 函数floor
和//
运算符。有什么理由这样做吗?我看不见。我觉得这是两次做同样的事情。
项目在这里
没有理由这样做,//
将返回整数或对应于整数的浮点数,因此floor
什么也不做。
至于为什么要做整件事:他们可能想要削减给定数量的以下零......看看这个例子:
>>> int(np.floor(40 // 10))
Out[40]: 4
如果一个人只是做 int,那么他会得到 40....
至于为什么 int 部分,
>>> (49 // 10.0)
Out[50]: 4.0
然而, floor() 部分什么也不做,除非代码曾经有 / 而不是 //,或者程序员担心同事可能会用 / 代替 // ...