[英]How can i divide float with another float?
当我尝试将浮点数与另一个浮点数相除时,出现“ /不支持的操作数类型:'str'和'float'”错误。 但是,我必须将浮子除以另一个浮子...
for k in range(0, len(diff2_list)):
xt_d2 = diff2_list[k]
if k==0 or k==(len(diff2_list)-1):
spkd_c2_list.append("NAN")
else:
spkd_c2_list.append((diff2_list[k-1])/(diff2_list[k+1]))
列表diff2_list
中的每个值都是float值,我期望某些float值的结果。 但正如我之前所说,会发生“ /:'str'和'float'不支持的操作数类型”错误。
我怎么解决这个问题?
您的代码几乎没有问题。
str
和float
)。 如果您的目标是划分两个元素,则需要将两个元素都转换为float
。 您没有正确使用range()
。 首先, range(0, len(diff2_list))
等同于range(len(diff2_list))
。 但是,如果我们在循环内查看代码,则会发现下一个条件: if k==0 or k==(len(diff2_list)-1):
您添加了此功能是为了避免访问不在列表中的索引时出错。 但是您可以通过确定范围(排除列表的第一个元素和最后一个元素的索引)来防止此情况。
for k in range(1, len(diff2_list) - 1):
因此,应用所有这些技巧,您的代码将如下所示:
diff2_list = [1, 1.1, "1.2", "1.3"]
spkd_c2_list =[]
for k in range(1, len(diff2_list) - 1):
xt_d2 = diff2_list[k] # if you need it, cause in current code you don't use it
try:
spkd_c2_list.append(float(diff2_list[k - 1]) / float(diff2_list[k + 1]))
except:
spkd_c2_list.append("NAN")
不支持的操作数类型意味着您的类型之一不是浮点数,而是str(字符串),只需确保您的操作数是浮点数即可:
spkd_c2_list.append(float(diff2_list[k-1])/float(diff2_list[k+1]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.