我试图在忽略零值的情况下遍历列表。该列表包括浓度值,对于这些值,应进行计算。在某些点,浓度为零,因此计算将返回错误。我不知道如何解决这个问题。理想情况下,我希望忽略列表中的零。另一种选择是在遇到错误时让计算返回零。我试着解决它,除了。然后它返回一个“RuntimeWarning:除以日志中遇到的零”,我试图用np.errstate行忽略它。运行此命令只会为列表中的第一项返回一个值。我希望列表中的每个项目都有一个值。我对python非常陌生,基本上不知道如何解决这个问题。任何帮助都将不胜感激
def calculate_deltaGr():
deltaG0T = calculate_deltaG0()[0]
deltaGr_list = []
for Con1 in Con1_list:
with np.errstate(divide='ignore'):
try:
deltaGr = deltaG0T + R * T1 * np.log((Con1 ** n_con1) / ((Con2 ** n_con2) * (Con3 ** n_con3) * (Con4 ** n_con4)))
deltaGr_list.append(deltaGr)
except TypeError:
return 0
return deltaGr_list
只有con1应该是可变的。Con2、Con3和Con4是固定值
如果您在得到0时不想做任何事情,请使用
continue
使用一个简单的if语句就可以了。使用try/except不是最好的。你知道一个输入可以是零,为什么不检查一下呢?如果希望列表中有一个值作为占位符,可以返回一个较大的超出范围的值,或者像现在一样返回0
相关问题 更多 >
编程相关推荐