在python中,将一个函数的输出添加到另一个函数中的常量
这似乎很基本,但我似乎无法正确理解 我有两个用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
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上随机搜索得到它。