Randrange依赖于变量 - Python

时间:2015-12-24 05:08:18

标签: python random floating-point

我试图为在画布上产生的对象制作随机合作(画布是用户画面的大小,因此范围不断变化。)

random.randrange(12.5, int(resX-12.5))

这是代码行resX,它是存储用户屏幕分辨率大小的变量,12.5是生成的形状的半径。

我得到的错误是resX部分不是整数 ValueError: non-integer arg 1 for randrange()

我不确定是否可以在随机行中使用变量?

1 个答案:

答案 0 :(得分:2)

您需要random.uniform才能获得特定范围之间的随机浮点数:

>>> resX = 100
>>> random.uniform(12.5, int(resX-12.5))
55.797969682558296

请注意,由于您可以将浮点数作为范围传递到uniform(),因此您可能不需要调用int上的resX-12.5函数,但由于此更改可能会影响结果,这取决于你想要什么。否则你可以这样做:

>>> random.uniform(12.5, resX-12.5)
66.1303523838728