Python TypeError:不支持*:';浮动';和';设置';
通过执行此代码,我得到了错误: TypeError:不支持*:“float”和“set”的操作数类型Python TypeError:不支持*:';浮动';和';设置';,python,Python,通过执行此代码,我得到了错误: TypeError:不支持*:“float”和“set”的操作数类型 如何解决此问题?您似乎正在通过在ve操作中使用{}大括号创建一个集合 由于您试图使用乘法,并且乘法运算介于浮点(左侧k)和集合之间,因此它会失败,因为它不受支持 去掉等式中的{},你就应该没事了。改变下面的行 ve={-k*(v1+v2)+math.sqrt(math.pow((k*(v1+v2)),2)-4*k*{k*v1*v2+v1-v2}/(2*k) 到 ve=(-k*(v1+v2)+m
如何解决此问题?您似乎正在通过在
ve
操作中使用{
}
大括号创建一个集合
由于您试图使用乘法,并且乘法运算介于浮点(左侧k
)和集合之间,因此它会失败,因为它不受支持
去掉等式中的{}
,你就应该没事了。改变下面的行
ve={-k*(v1+v2)+math.sqrt(math.pow((k*(v1+v2)),2)-4*k*{k*v1*v2+v1-v2}/(2*k)
到
ve=(-k*(v1+v2)+math.sqrt(math.pow((k*(v1+v2)),2)-4*k*(k*v1*v2+v1-v2))/(2*k)
输出:
-3.536702464867566
在python中,{}
中包含的值是set或dictionary,而[]
中包含列表。您应该始终使用小括号()
,以达到括号的目的
import math
def cal(v1, v2, dt, m, rho, A, D):
k = -D * rho * A * dt / 2 / m
ve = {-k*(v1+v2) + math.sqrt(math.pow((k*(v1+v2)),2)-4*k*{k*v1*v2+v1-v2})}/(2*k)
return ve
m = 16.2*10**-3
rho = 1.225
A = 2*10**-4
D = 0.47
v1 = 0.350313
v2 = 0.301598
dt = 1.329709
ve = cal(v1, v2, dt, m, rho, A, D)
print(ve)