'语法错误:语法无效'没有明显原因

时间:2014-06-16 05:30:19

标签: python syntax-error spyder

我一直在尝试修复,无法找到错误不断出现的原因。 Pmin,Pmax,w,fi1和fi2都被赋予了有限值

guess=Pmin+(Pmax-Pmin)*((1-w**2)*fi1+(w**2)*fi2)

当我从代码中删除此行时,在下一行代码中出现相同的错误,再次无缘无故地我能想到

编辑:这是我所指的代码块:

def Psat(self, T):
    pop= self.getPborder(T)
    boolean=int(pop[0])

    P1=pop[1]
    P2=pop[2]
    if boolean:
        Pmin = float(min([P1, P2]))
        Pmax = float(max([P1, P2]))
        Tr=T/self.typeMolecule.Tc
        w=0.5*(1+scipy.tanh((10**5)*(Tr-0.6)))
        fi1=0.5*(1-scipy.tanh(8*((Tr**0.4)-1)))
        fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494

        guess = Pmin+(Pmax-Pmin)*((1-w**2)*fi1+(w**2)*fi2)   #error here

        solution = scipy.optimize.newton(funcPsat,guess, args=(T,self))

6 个答案:

答案 0 :(得分:56)

对于您认为正确的行上似乎是错误的问题,您通常可以删除/注释错误所在的行,如果错误移到下一行,则有两种可能性。

两个行都有问题,或者上一行行有问题正在进行中。最可能的情况是第二个选项(如果删除另一行并再次移动,则更是如此)。

例如,以下Python程序twisty_passages.py

xyzzy = (1 +
plugh = 7

生成错误:

  File "twisty_passages.py", line 2
    plugh = 7
          ^
SyntaxError: invalid syntax

尽管问题显然在第1行。


在您的特定情况下, 问题。 之前行中错误行中的括号是不匹配的,如下面的代码段所示:

# open parentheses: 1  2             3
#                   v  v             v
fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494
#                               ^             ^
# close parentheses:            1             2

根据您尝试实现的目标,解决方案可能就像在最后添加另一个右括号一样简单,以关闭sqrt功能。< / p>

我无法为某些说话,因为我无法识别出我头脑中的表情。如果(假设PSAT是酶,并使用typeMolecule标识符)它与分子生物学有关 - 我似乎记得在我年轻时始终不及生物学,这简直令人惊讶: - )

答案 1 :(得分:4)

你错过了这一行中的密切关注:

fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494

有三个(只有两个)。我希望这会对你有所帮助。

答案 2 :(得分:0)

在检查所有括号后,匹配'('和')'以及所有数量,在我的案例中,我发现VS代码框括号'['自动完成生成虽然透明,但却增加了一些额外内容。幸运的是,VS Code指向问题区域(尽管是“不可见的”)。我修复了删除的问题,然后逐笔重新键入了方括号。

答案 3 :(得分:0)

我遇到了类似的问题,但我知道语法错误应该不是语法错误。就我而言,事实证明一个Python 2解释器试图运行Python 3代码,反之亦然;我认为我的shell的PYTHONPATH混合了Python 2和Python 3。

答案 4 :(得分:0)

如果使用python运行程序,请尝试使用python3运行。

答案 5 :(得分:0)

我注意到,在没有明显原因的情况下,无效语法错误可能是由以下空格引起的:

print(f'{something something}')

Python IDLE似乎由于某种原因(即使第一行恰好是注释)跳了起来并突出显示了第一行的一部分,这具有误导性。