这些数字在随机编号中是多少.发电机做



基本上我了解程序,但不了解此处使用的数学/数字。

import random
def r_int():
  x = int(abs(10 * random.random() % 20))
  return x

我发现这相当于random.randint(0,9).%20在这里做什么?

%是模运算符;它返回第一个操作数上除法运算的余数

% 20 表示:返回第一个操作数的余数除以 20;这始终是 [0.0, 20.0) 范围内的数字(包括 0,不包括 20)。

这使得abs()调用完全冗余,因为结果始终是积极的。并不是说取模运算符有任何点,因为10 * random.random()始终是 [0.0, 10.0) 范围内的浮点数(因此小于 10)。任何低于 20.0(模数为 20)的数字都是相同的数字。

他们本可以使用random.randrange(10)并避免所有这些混乱。

最新更新