Python TypeError:不支持*:';浮动';和';设置';

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

通过执行此代码,我得到了错误: 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)+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)