2015-12-24 18 views
1

林試圖使無規共ORDS用於對象產卵到畫布上Randrange依賴變量 - (畫布是用戶的尺寸屏幕,以便範圍是不斷變化的)的Python

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

這是代碼行resX是存儲用戶屏幕分辨率大小的變量,12.5是生成的形狀的半徑。

我得到的錯誤是RESX部分不是整數 ValueError: non-integer arg 1 for randrange()

林不知道如果theres使用隨機行內的變量的方法嗎?

+0

你想一個隨機浮點或隨機中斷? – Eric

+0

random int導致它的合作伙伴,不能使用float爲那 –

+0

_「導致它的合作伙伴,不能使用float」 - - 該參數不成立。經緯度是座標,我們使用浮點數。 GPU緩衝區包含座標,我們使用浮點數。你確定你不想漂浮嗎?請注意,接受的答案給你浮動。 – Eric

回答

2

你需要random.uniform爲獲得特定範圍之間的隨機浮點數:

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

注意,因爲你可以傳遞一個浮點數的範圍爲uniform(),你可能並不需要調用int功能在resX-12.5但由於這種變化可能會影響結果,這取決於你want.Otherwise你可以像以下:

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

'int'現在可能不再需要 – Eric

+0

@Eric確實,但是因爲它可能會影響結果,所以我也會提到。 – Kasramvd

+0

好吧,所以範圍不是正確的使用變量時? 謝謝 –