诸神缄默不语-个人CSDN博文目录
运行环境,报错信息、原因和解决方案: Linux系统,Python3,random包。(在运行过程中使用了其他框架,与本错误无直接关系)
报错信息:
Traceback (most recent call last):
File "my_path/myscript.py", line 302, in <module>
i=random.randint(0,len(val_data)-1)
File "mypath/lib/python3.8/random.py", line 248, in randint
return self.randrange(a, b+1)
File "mypath/lib/python3.8/random.py", line 226, in randrange
raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0, 0, 0)
解决方式:我发现是因为获取数据(val_data )的过程中出现了问题,导致val_data 为空列表,len(val_data)-1 为-1,小于0,而random.randint() 方法的第二个参数必须小于或等于第1个参数。 修改获取数据的代码后,val_data 有了元素,len(val_data)-1 大于等于0了,就可以正常运行了。
参考资料:
- ValueError: empty range for randrange() (1,1, 0)_醉小义的博客-CSDN博客
- random.randint()的官方文档
|