2015-08-15 72 views
-1

我得到「ValueError:randrange()的非整數停止」。我如何解決這個問題?爲什麼random.randint()會給出ValueError?

這是我的代碼:

# Bunnies and Badgers (github.com/Zwengel/PythonGame) 
import pygame, random 
width, height = int(pygame.display.Info().current_w), int(pygame.display.Info().current_h) 
badheight1 = height/9.6 
badheight2 = height/1.12 
badheight = random.randint(badheight1, badheight2) 
+2

'我該如何解決這個問題?使用整數,如錯誤提示... – njzk2

+0

是不是已經是一個整數? – wb9688

+0

@ wb9688你在python3.x上? –

回答

1

在Python當您使用/運營商,一個操作數,浮點它返回一個浮點數,所以badheight1badheight2是float和你試圖傳遞飄進random.randint()造成問題,如果你想整數使用//。示例 -

badheight1 = height//9.6 
badheight2 = height//1.12 
badheight = random.randint(badheight1, badheight2) 
+0

我正在使用Python 2.7 – wb9688

+0

所使用的版本上的點是不相關的,因爲9.6是一個浮點數。 – njzk2

0

從文檔:

randint(self, a, b) method of random.Random instance Return random integer in range [a, b], including both end points.

兩個端點都必須是整數,你逝去的浮動。

0

random.randint(INT, INT)是調用該函數的正確方法。使用整數而不是浮點數。我建議這樣:

random.randint(10 ,1) 
相關問題