我的一个Python脚本中的一条语句给出了一条RuntimeWarning消息:
RuntimeWarning: invalid value encountered in double_scalars
z = 1.0/(D*ppr + E*y**2 - F*y**G)脚本仍然在运行,绘制一个漂亮的图表,显示可接受的结果,等等。但是这个警告让我很困扰。
每当发生这种情况时,我都想检查这些值。这不应该起作用吗?
try:
z = 1.0/(D*ppr + E*y**2 - F*y**G)
except RuntimeWarning:
print (D, E, F, G, ppr, y)然而,这里列出了这两个例外:https://docs.python.org/3/library/exceptions.html
这里有什么问题?谢谢你的帮助。
PS:我使用的是Spyder 4.1.1 IDE。这有什么不同吗?
发布于 2020-04-05 11:41:29
根据documentation on the warnings module的说法,这就是你如何"catch" warnings
with warnings.catch_warnings(record=True) as w:
z = 1.0/(D*ppr + E*y**2 - F*y**G)
if len(w) > 0:
print (D, E, F, G, ppr, y)免责声明:请注意,忽略这些警告可能不符合您的最佳利益,而是要了解它们发生的原因并修复代码,然后删除警告检查。
https://stackoverflow.com/questions/61037693
复制相似问题