我目前正在编写一个代码来查找值C,然后我将与其他参数进行比较。但是,每当我尝试运行我的代码时,我都会收到此错误:ValueError:math domain error。我不确定为什么我会收到这个错误,尽管我认为这是我如何设置我的等式。也许有更好的方法来写它。这是我的代码:
import os
import math
path = "C:\Users\Documents\Research_Papers"
uH2 =5
uHe = 3
eH2 = 2
eHe = 6
R = ((uH2*eH2)/(uHe*eHe))
kH2=[]
kHe=[]
print(os.getcwd()) # see where you are
os.chdir(path) # use a raw string so the backslashes are ok
print(os.getcwd()) # convince yourself that you're in the right place
print(os.listdir(path)) # make sure the file is in here
myfile=open("hcl@hfs.dat.txt","r")
lines=myfile.readlines()
for x in lines:
kH2.append(x.split(' ')[1])
kHe.append(x.split(' ')[0])
myfile.close()
print kH2
print kHe
g = len(kH2)
f = len(kHe)
print g
print f
for n in range(0,7):
C = (((math.log(float(kH2[n]),10)))-(math.log(float(kHe[n]),10)))/math.log(R,10)
print C
然后返回此行,表示存在域错误。
C = (((math.log(float(kH2[n]),10)))-(math.log(float(kHe[n]),10)))/math.log(R,10)
ValueError: math domain error
此外,对于文本文件,我现在只是使用6个数字的随机列表,因为我想在我输入真正的数字列表之前让我的代码工作。我使用的数字是:
5 10 4 2
6 20 1 2
7 30 4 2
8 40 3 2
9 23 1 2
4 13 6 2
答案 0 :(得分:0)
尝试检查日志中的值是否为正,因为日志函数的非正值是域错误。
希望这有帮助。