我想知道是否有任何理由不使用//运算符将数字舍入为整数.我在这个主题上看不多,或者真的知道要找什么来了解更多.
>>> from random import random
>>> random() * 20 // 1
1.0
>>> random() * 20 // 1
0.0
>>> random() * 20 // 1
16.0
>>> random() * 20 // 1
11.0
>>> random() * 20 // 1
0.0
除了需要在结果中加1(不得到1-20而不是0-19的范围)或者这个实际结果是否在0-20范围内?
解决方法:
不使用它的主要原因是有完美的内置函数int和round已经做到这一点,这可能是有效的,并且不会混淆读取代码的人.
注释中指出的另一个原因是// 1等同于math.floor而不是int或round. -2.5 // 1返回浮点-3.0而int(-2.5)返回整数-2.
有经验的程序员可能会对// 1所做的事情感到困惑,这很好地说明了为什么使用为此目的设计的现有功能之一更好 – 它们的行为方式明确,记录和一致.