修正プログラムを取得しようとしていますが、エラーが表示され続ける理由を見つけることができません。 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))
正しいと思われる行にエラーがあると思われる問題の場合、エラーがあると思われる行を削除またはコメントすることができます。エラーが次の行に移動する場合、2つの可能性があります。
both行に問題があるか、previous行に問題があります。ほとんどの可能性の高いの場合が2番目のオプションです(別の行を削除して再び移動した場合はさらにそうです)。
たとえば、次のPythonプログラムtwisty_passages.py
:
xyzzy = (1 +
plugh = 7
エラーを生成します:
File "twisty_passages.py", line 2
plugh = 7
^
SyntaxError: invalid syntax
問題は明らかに1行目にあります。
あなたの特定のケースでは、それはis問題です。 before行の括弧は、次のスニペットのように、エラー行が一致していません。
# 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
達成しようとしているものに応じて、解決策mayは、最後に別の閉じ括弧を追加するだけで、sqrt
関数を閉じます。
certainについて言えないのは、頭の上の表現がわからないからです。 (PSATが酵素であり、typeMolecule
識別子を使用していると仮定すると)分子生物学に関係している場合、驚くことはほとんどありません。
次の行に閉じ括弧がありません:
fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494
3つあります(2つだけです)。
これがお役に立てば幸いです。
構文エラーではないことを知っていた構文エラーで、同様の問題が発生しました。私の場合、Python 2インタープリターがPython 3コードを実行しようとしていた、またはその逆であることが判明しました。私のシェルには、Python 2とPython 3が混在したPYTHONPATHがあったと思います。
すべての括弧、「(」および「)」のすべての一致する数量、およびすべてをチェックした後、私のケースで見つけたのは、VS Codeボックスブラケット「[」auto-complete-generationは透明ではあるが余分なものを追加していることでした。幸いなことに、VS Codeは問題の領域を正しく示しています(ただし、「目に見えない」)。削除し、ストロークごとにボックスブラケットを再入力することを修正しました。