我在一年前写过这篇文章,虽然它符合它的目的,但我想知道是否有一个比我聪明的人能提出改善效率的方法。
def tempcolor(mintemp=0,maxtemp=32,mincolor=44000,maxcolor=3200,ctemp=10,c=0):
tempdiff=(mincolor-maxcolor) / (maxtemp-mintemp)
ccolor=(ctemp-mintemp) * tempdiff
ctouse=(mincolor-ccolor)
#print ctouse
return ctouse;
有一系列数字(mintemp到maxtemp)。当调用ctouse时,我们计算比率,然后将相同的比率应用于其他数字范围(mincolor和maxcolor)。
我在另一个脚本中使用它,只是想知道是否有人有任何关于使它更整洁的建议。或者更准确!
由于
威尔
答案 0 :(得分:0)
我将假设您很少或永远不会更改mintemp,maxtemp,mincolor,maxcolor的给定值。
我能看到的唯一效率改进是预先计算比率 - 比如
def make_linear_interpolator(x0, x1, y0, y1):
"""
Return a function to convert x in (x0..x1) to y in (y0..y1)
"""
dy_dx = (y1 - y0) / float(x1 - x0)
def y(x):
return y0 + (x - x0) * dy_dx
return y
color_to_temp = make_linear_interpolator(0, 32, 44000, 3200)
color_to_temp(10) # => 32150.0