我试图写一个加热器函数,但我有一些困难。对Python来说我还是个新手。在
我想让我的加热器运行15000秒,但在最初的120秒(包括120秒)内,我希望它沿着一条线性路径T = 0.0804 * t + 16.081
,然后在120秒之后,我希望它在剩余的时间内,在线性方程中找到的最终温度下保持恒定。在
我写的代码下面有错误
import math, numpy as np
from random import *
a = 0.0804
time = range(15001)
for time in xrange(15001):
if 0 < = time < = 120:
Temp = a * np.array(time) + 18.3
elif time > 121:
Temp = Temp[120]
错误:
^{pr2}$
看起来您在
time
(结果是range()
)和Temp
(大写,循环变量,一个整数)之间搞混了。在因为
^{pr2}$time
是一个列表,您也不应该尝试测试它是否小于或大于单个整数;0 <= time <= 120
没有任何意义;不同类型之间的排序总是将数字放在第一位,然后按类型名称排序;整数总是总是低于列表,因此time > 121
总是始终True
。在或者作为列表理解:
在循环中,
T
是来自xrange(150001)
的整数。在if
语句的then
子句中,您将T
设置为数组,但这与elif
子句中发生的情况无关。在一般来说,不应该在循环中重置循环变量(这可能不是您要做的)。在
在您编辑的版本中,
Temp = Temp[120]
这一点也不好:Temp
在这里仍然不是一个数组,所以您不能为它下标。在相关问题 更多 >
编程相关推荐