2012-03-29 2 views
-1

に別の関数内で定数に....これはかなり基本的なようだが、私は右のそれを得ることができないようパイソン

を関数からの出力を追加し、私はPythonで定義しています二つの機能を持っています両方とも数値計算である。最初はまっすぐで、私には数字の出力が与えられます。 2つ目は、最初の出力に定数を加えたものが何時に与えられたかに基づいています。

def rt(a, b, t): 
    #formula to calculate growth rate for brown fish 
    #a & b are constants given, t = the month number 
    rt = a + (b*sin(((2*pi)*t)/12)) 
    return rt 

def st(brown): 
    #formula to calculate growth rate for gold fish 
    #rt = output from the growth rates for brown fish 
    st = rt + 0.052 
    return st 

私はそれを実行すると、私は次のエラーを取得する:

Traceback (most recent call last): 
    File "/Users/joanneedes/Documents/Uni Stuff/SCIE1000/Big Project/Big Project Q5a.py", line 41, in <module> 
    print st(rt) 
    File "/Users/joanneedes/Documents/Uni Stuff/SCIE1000/Big Project/Big Project Q5a.py", line 13, in st 
    st = rt + 0.052 
TypeError: unsupported operand type(s) for +: 'function' and 'float' 

私は、RTは関数であり、0.052は数パイソンであるため、追加する方法を知らないことを「ヒント」与えられてしまいましたそれを再現する方法はどこにも見つけることができません - 確かに可能でなければなりません!

+0

この質問は、任意のプログラミング言語の1つの非常に基本的なことのようです。あなたは、任意の本やstackoverflow上のランダムな検索からそれを持っている可能性があります。 – Surya

答えて

3

rtがないその結果、機能であるため、あなたは、st機能を再定義する必要があります。ここでは、rt(a,b,t)を呼び出し、0.052と合計して、この結果を使用

def st(brown): 
    #formula to calculate growth rate for gold fish 
    #rt = output from the growth rates for brown fish 
    st = rt(a, b, t) + 0.052 
    return st 

それは今brownのうち、a, b, tを得るためにあなたの番です。

+0

ありがとうございました。すべてのスーパーが役に立ちました。 – newtopython

0

あなたはそれが数値を返すように、いくつかのパラメータでrtを呼び出す必要があります。

0

rtが関数である、あなたは(つまり、エラーが何を意味するのかだ)floatに「それを追加」することはできません。

あなたはそれを呼び出す必要があります - rt()、その後、あなたの計算で結果を使用します。もちろん

def st(brown): 
a = 1 
b = 2 
t = 3 
st = rt(a,b,t) + 0.052 
return st 

をあなたは正しい引数を指定してrt()を呼び出す必要があります。

関連する問題