2015-08-15 70 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) 
相关问题