将浮点值列表传递给函数时出错

时间:2018-06-07 12:58:04

标签: python floating-point

不支持的操作数类型 - :' str'和' str'

我将两个列表传递给函数,以使用sesnor数据查找起始距离,结束距离,开始时间,结束时间。当列表只包含整数值时,它不会抛出任何错误并且工作正常但是当我试图将列表转换为浮动值时,它显示错误

x = ["%.2f"%(b*1000) for b in t] # t is a list of time values
y =  [c*0.002 for c in values]# values is a list of sensor values    
z = ["%.2f"%(d*48.484) for d in y]
p1,t1 = min_distance(z,x)
p2,t2 = max_distance(z,x)





def min_distance(self,z,x):

        count = True
        i =  0
        while count and (i+1) !=len(z):
            if abs(z[i] - z[i+1]) >= 1: 
            count = False
            else:
            i +=1
        min_value = z[i])
        min_time = x[i])
        return min_value,min_time


def max_distance(self,z,x):    

        count = 0
        j =  1
        while count<20:
            if abs(z[-j] - z[-j-1]) >=1: 
            count +=1
            else:
            j +=1
        max_value = z[-j+20]
        max_time = x[-j+20]
        return max_value,max_time

1 个答案:

答案 0 :(得分:0)

xyz是字符串数组,而不是整数或浮点数。您正在使用字符串替换创建它们,字符串替换插入并格式化浮点值但会生成字符串。

为确保获得浮点数,请确保bc为浮点数,或者通过添加小数点将整数强制为浮点数。例如,如果b是整数,b*1000将产生整数,但b*1000.0float(b*1000)会产生浮点数

尝试,例如:x = [b*1000 for b in t]等等,然后只有当您需要输出对用户可见时,才能格式化任何结果字符串(就像您所做的那样)。