在python中,将一个函数的输出添加到另一个函数中的常量

在python中,将一个函数的输出添加到另一个函数中的常量,python,function,input,typeerror,Python,Function,Input,Typeerror,这似乎很基本,但我似乎无法正确理解 我有两个用python定义的函数,都是数值计算。第一个是直截了当的,给我一个数字的输出。第二个是基于第一个加上一个常数的输出 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)) re

这似乎很基本,但我似乎无法正确理解

我有两个用python定义的函数,都是数值计算。第一个是直截了当的,给我一个数字的输出。第二个是基于第一个加上一个常数的输出

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'
回溯(最近一次呼叫最后一次):
文件“/Users/joanneedes/Documents/Uni-Stuff/SCIE1000/Big-Project/Big-Project Q5a.py”,第41行,在
打印st(rt)
文件“/Users/joanneedes/Documents/Uni-Stuff/SCIE1000/Big-Project/Big-Project Q5a.py”,第13行,st
st=rt+0.052
TypeError:+:“function”和“float”的操作数类型不受支持

我得到了一个“提示”,因为rt是一个函数,0.052是一个数字,python不知道如何将其相加,但我找不到任何地方如何背诵它——这肯定是可能的

您必须重新定义
st
函数,因为
rt
是函数,而不是结果:

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
这里您调用
rt(a,b,t)
并将此结果与0.052相加


现在轮到你从
brown
中获取
a,b,t
,你需要调用
rt
,使用一些参数,以便它返回一个数字。

rt
是一个函数,你不能将它“添加”到浮点(这就是错误的意思)

您必须调用它-
rt()
,然后在计算中使用结果:

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

当然,您必须使用正确的参数调用
rt()

非常感谢所有的帮助-我应该在几个小时前完成!这个问题似乎是任何编程语言中最基本的问题之一。你可以从任何一本书或者从stackoverflow上随机搜索得到它。