这些数字随机数是多少。发电机吗?

时间:2016-01-27 13:07:53

标签: python math random

基本上我理解程序而不是这里使用的数学/数字。

import random

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

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

1 个答案:

答案 0 :(得分:4)

%modulo operator;它返回第一个操作数上除法运算的余数

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

这使得abs()调用完全是多余的,因为结果总是正面的。并非模运算符也有任何一点,因为10 * random.random()始终是[0.0,10.0]范围内的浮点数(因此低于10)。低于20.0,模数20的任何数字都是相同的数字。

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