随机模块未工作。ValueError:randrange()的范围为空(1,1,0)

20 投票
4 回答
66394 浏览
提问于 2025-04-16 08:55

在Python 2.7.1中,

我导入了随机模块(random module)。

但是当我调用randint()时,却出现了错误:

ValueError: empty range for randrange() (1,1, 0) 

这个错误是因为random.py模块本身有问题。

我不知道该怎么解决,重新安装Python也没有用。我不能更换版本。

有没有人能给我一个可以正常工作的模块代码,或者告诉我该怎么做?

4 个回答

2

random.randint(1, 0) 会报错,因为在使用 random.randint(a, b) 时,a 必须小于 b。你可以把 random.randint(1, 0) 改成 random.randint(0, 1),这样就能得到一个有效的结果。

想了解更多关于 random.randint 的信息,可以点击 这里

8

相信我,random 这个函数运行得很好。你在用 randint 的时候,传入的 b 是小于 a 的:

>>> random.randint(1, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\random.py", line 228, in randint
    return self.randrange(a, b+1)
  File "C:\Python27\lib\random.py", line 204, in randrange
    raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop
, width)
ValueError: empty range for randrange() (1,1, 0)

randint 会返回一个值,这个值是在第一个参数和第二个参数之间的。

30

你是这样调用randint的:

 randint(1,0)

这段代码告诉randint返回一个值,起始值是1,结束值是0。你肯定明白,从1到0的数字范围是空的,也就是说没有任何数字可以选。所以就出现了错误:

 empty range for randrange()

撰写回答