0

私のプログラム全体は正しいです(さまざまな段階でチェックしました)。ただし、このモジュールで強調表示されている行は、次のエラーを返します。

TypeError: can only concatenate tuple (not "int") to tuple

なぜこれが起こっているのかわかりません。funcPsatfloat 値を返します。有益なアドバイスをいただければ幸いです。

import scipy.optimize.newton as newton

def Psat(self, T):
    pop= self.getPborder(T)
    boolean=int(pop[0])
    P1=pop[1]
    P2=pop[2]
    if boolean:
        Pmin = min([P1, P2])
        Pmax = max([P1, P2])
        if Pmin > 0.0: 
            Pguess = 0.5*(Pmin+Pmax) 
        else:
            Pguess=0.5*Pmax
        solution = newton(self.funcPsat, Pguess, args=(T))   #error in this line
        return solution
    else:
        return None
4

1 に答える 1

4

問題は、ドキュメントによると、

args: タプル、オプション

関数呼び出しで使用される追加の引数。

args引数は である必要がありますtuple

括弧を入れるだけではうまくいきません。タプルの構文はコンマです。例えば:

>>> T = 0
>>> type((T))
<type 'int'>
>>> type((T,))
<type 'tuple'>

試す:

solution = newton(self.funcPsat, Pguess, args=(T,))
                                              # ^ note comma
于 2014-06-10T11:21:06.313 に答える