Traceback (most recent call last):
File "C:\Users\happy\Documents\Python\Python Hangman Files\Python Hangman EXE.py", line 253, in <module>
wordchoice = randint(0, len(words)-1)
File "C:\Users\happy\AppData\Local\Programs\Python\Python36-32\lib\random.py", line 220, in randint
return self.randrange(a, b+1)
File "C:\Users\happy\AppData\Local\Programs\Python\Python36-32\lib\random.py", line 198, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0,0, 0)
我收到了这个错误,而且我不知道它的含义或代码有什么问题,提前感谢您的帮助。
答案 0 :(得分:2)
看起来len(words)
为0,因此len(words) - 1
为-1,因此random
无法生成范围内的数字。我不能确定如何解决这个问题,因为我没有你的代码。
答案 1 :(得分:1)
我猜你使用的函数randint()
使用randrange()
而没有给出数字范围 - 而且无效。
你应该像这样使用它:
random.randrange ([start],stop [,step])
例如:
random.randrange(1,1000)
将为您提供1到1000之间的数字。
random.randrange(1,1000,2)
会做同样的事情,但跳跃为2(I.e.1,3,5 ......)
答案 2 :(得分:1)
我相信你已经有了问题的原因。确实words
为空,而randrange()
方法don't handle this kind of input。
您可以随时检查您的变量(在这种情况下为words
)是否为空,只需使用:
if len(words) > 0:
wordchoice = randint(0, len(words)-1)