语法没有错误时,Python程序错误会显示语法错误

时间:2019-12-30 11:35:48

标签: python error-handling syntax-error

我有一个代码,可以从公式文件和值文件中读取,以将评估值打印到另一个输出描述符文件中。公式文件如下所示:

a+b*c m=0.56
(a/b)*(c/d) m=0.44
(c-a)*a m=0.23
...
<50000 entries>
...

输入值文件如下:

name    a    b    c    d
pele   0.1  23   -0.4  1.6
dida   1    11.2  0.9  7.2
kaka   2.3  10.9 -0.34 13.2
.....
<100 entries>
....

输出描述符文件看起来像

100.32 34.11 0.33 -9.54 ...
...
<100 x 50000> shaped file
...

现在,当代码从公式文件中读取代码时,它将去除除公式之外的任何不必要的加法(例如m = 0.23等),并遍历数据文件的每一行以生成单个值,并将其写入输出中描述符文件。简而言之,输出描述符文件中的一行是每个样本(例如pele)的所有公式的值。这适用于所有标本。

最小的工作示例如下所示

for i,r in data.iterrows():
  # <reads value from data/value file to variables>  
  for j in range(len(df)): 
    f = str(df.iloc[j])
    p=f[1:].strip() #to remove a 0 and all leading spaces
    sep = '\n'
    rest = p.split(sep, 1)[0] #to remove dtype=object and other such info
    e = eval(rest)
    print(e, end=" ")
  print("\n")

这可以一直运行到第一个样本的第501个公式,此后它会抛出如下错误消息:

Traceback (most recent call last):
  File "part1.py", line 46, in <module>
    e = eval(rest)
  File "<string>", line 1
    (((a+c)+abs(a-b))/((d*c)*abs(a-b...
                                      ^
SyntaxError: invalid syntax

我检查了该位置的公式文件,它列出了整个公式,而不是错误中显示的此...。现在,我对此一无所知,不知道哪里出了问题。任何帮助表示赞赏。

0 个答案:

没有答案