TypeError:一元的操作数类型错误:“list”这是什么意思?

2024-06-11 08:59:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我的计划:

def func1(x):
pH=x[0]
pOH=[1]
pCO2=x[2]
pNA=x[3]
pH2CO3=x[4]
pHCO3=x[5]
pCO3=x[6]
pKHP=x[7]
pKP=x[8]

f0=pH+pOH-pKW
f1=pH2CO3-pCO2-pK1
f2=pH+pHCO3-pH2CO3-pK2
f3=pH+pCO3-pHCO3-pK3
f4=pKP+pH-pKHP-pK4
f5=10**(-pOH)+10**(-pHCO3)+2*10**(-pCO3)+10**(-pKP)-10**(-pH)-10**(-pNA)
f6=10**(-pH2CO3)+10**(-pHCO3)+10**(-pCO3)-F
f7=10**(-pKHP)+10**(-pKP)-F1
f8=F2-10**(-pNA)

return f0,f1,f2,f3,f4,f5,f6

KW=1.0E-14
K1=10**-10.3
K2=1.70E-3
K3=10**-3.7
K4=10**-5.40
F=1.32E-5
F1=2.0E-5
F2=1.4E-3

pKW=-np.log10(KW)
pK1=-np.log10(K1)
pK2=-np.log10(K2)
pK3=-np.log10(K3)
pK4=-np.log10(K4)

pH_seed=8.0
pOH_seed=6.0
pCO2_seed=1.0
pNA_seed=3.0
pH2CO3_seed=2.0
pHCO3_seed=2.0
pCO3_seed=2.0
pKHP_seed=2.0
pKP_seed=1.0

 seed_array=np.array([pH_seed,pOH_seed,pCO2_seed,pNA_seed,pH2CO3_seed,pHCO3_seed, 
 pCO3_seed,pKHP_seed,pKP_seed])


opt_values=fsolve(func1, seed_array)

Error: 
 18    f3=pH+pCO3-pHCO3-pK3
 19     f4=pKP+pH-pKHP-pK4
---> 20     f5=10**(-pOH)+10**(-pHCO3)+2*10**(-pCO3)+10**(-pKP)-10**(- pH)-10**(-pNA)
 21     f6=10**(-pH2CO3)+10**(-pHCO3)+10**(-pCO3)-F
 22     f7=10**(-pKHP)+10**(-pKP)-F1
TypeError: bad operand type for unary -: 'list' 

这是化学的一个解决问题。这个错误是什么?简单的回答是,我不太了解编码。我不擅长语法。我缺少变量吗?我迷失了,因为我有另一个类似的代码,但工作良好。我用的是python


Tags: npphseedf3f4pohlog10pna